# Linux sync connected to server but can't access files

**URL:** https://forum.pydio.com/t/linux-sync-connected-to-server-but-cant-access-files/6490
**Category:** Sync Client
**Tags:** linux
**Created:** [January 28, 2025, 10:44pm UTC](https://forum.pydio.com/t/linux-sync-connected-to-server-but-cant-access-files/6490 "2025-01-28T22:44:50Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![4ctiv](https://avatars.discourse-cdn.com/v4/letter/4/65b543/32.png) [@4ctiv](https://forum.pydio.com/u/4ctiv)
#### Post date: [January 28, 2025, 10:44pm UTC](https://forum.pydio.com/t/linux-sync-connected-to-server-but-cant-access-files/6490/1 "2025-01-28T22:44:50Z")

</div>

Hello,

It looks like my problem is quite simmilar to post 2161and post 4429 (sadly can not link them here, sync-client\>linux)

I am using the linux **cells-sync** (0.9.4),  
my **pydio cells** (4.4.9) is hosted via docker and accessed via a cloudflare tunnel (8050 |-\> 443 on example.url).

> What **works** :
> 
> - Android Sync client
> - ~~Windows Sync client~~
> - Linux sync client: Connecting to server (login)

What is **broken** :

- Linux sync client create sync task fails
  - “authorization error 403 : unexpected HTTP status code” is displayed when opening remote folder view.  
[2025-01-28\_pydio\_403.png - Google Drive](https://drive.google.com/file/d/1oGmFo3G7IXLrXaCBQj1cCPvwcheKblaN/view?usp=drive_link)

My docker setup:

```yaml
services:
  pydio:
    image: lscr.io/linuxserver/pydio-cells
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SERVER_IP=https://example.url # Same as externalurl to fix linux sync client connect
      - EXTERNALURL=https://example.url:443
      - FILE__MYVAR=./.env
   # - CELLS_GRPC_EXTERNAL=8080
   # - CELLS_SITE_NO_TLS=1
    networks:
      - default
      - cloudflare
      - pydio-internal
    ports:
      - "8050:8080" # https frontend
      - "8051:33060" # gRpc
    links:
      - "db"
    depends_on:
      - "db"
    volumes: # https://forum.pydio.com/t/cannot-add-storages-in-pydio-cells/4000
      - <sensitive_information_removed>

db:
  ...

networks:
  pydio-internal:
    internal: true

  cloudflare:
    external: true # Cloudflare proxy

```

```auto
$ cat sync.log | tail -n 20
2025-01-28T23:32:26.730+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (4.999930 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc00083e240}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:26.730+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:26.730+0100	INFO	supervisor	Entering the backoff state.
2025-01-28T23:32:26.730+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (5.999895 failures of 5.000000), restarting: false, error: "{%!s(*control.StdInner=&{0xc0008727e0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T22:39:56.015+0100	INFO	update.service	Starting Updater Service
2025-01-28T23:32:33.038+0100	ERROR	systray	http://localhost:3636/static/js/main.3fb97077.chunk.js? __WB_REVISION__ =8fb4a698405c9655fc00:1:142766: CONSOLE LOG [object Object]
2025-01-28T23:32:45.503+0100	INFO	supervisor	Exiting backoff state.
2025-01-28T23:32:45.503+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.504+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (1.000000 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0005c2750}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.504+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.504+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (1.999993 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0008728a0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.504+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.504+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (2.999981 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc00083e300}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.504+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.505+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (3.999960 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc0005c2810}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.505+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.505+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (4.999935 failures of 5.000000), restarting: true, error: "{%!s(*control.StdInner=&{0xc00083e3c0}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]
2025-01-28T23:32:45.505+0100	INFO	scanner	Use 'quit' or Ctrl+C to exit, type 'resync', 'dry', 'loop' to control syncs, 'pause' or 'resume'
2025-01-28T23:32:45.505+0100	INFO	supervisor	Entering the backoff state.
2025-01-28T23:32:45.505+0100	INFO	supervisor	cells-sync: Failed service '&control.StdInner{ctx:context.Context(nil)}' (5.999916 failures of 5.000000), restarting: false, error: "{%!s(*control.StdInner=&{0xc000872960}) &control.StdInner{ctx:context.Context(nil)}} returned unexpectedly", stacktrace: [unknown stack trace]

```

> Server logs display error (don’t know if that is related):  
> [2025-01-28\_pydio\_403\_server.png - Google Drive](https://drive.google.com/file/d/18ct_8mUx5TGTGeBc7G0j81Ma5-tRZn4h/view?usp=sharing)

My first time here, hope I described everything ok’ish.  
I added the images as google drive links as I can not (yet) post images.

Greetings, L.

---

<div class="post-metadata">

### Author: ![4ctiv](https://avatars.discourse-cdn.com/v4/letter/4/65b543/32.png) [@4ctiv](https://forum.pydio.com/u/4ctiv)
#### Post date: [January 29, 2025, 5:21pm UTC](https://forum.pydio.com/t/linux-sync-connected-to-server-but-cant-access-files/6490/2 "2025-01-29T17:21:16Z")

</div>

Hi, me again.

So I really tried to get this to work today and stumbled across [post 5943](https://forum.pydio.com/t/how-to-configure-pydio-cloudflare-tunnel-to-support-cellssync/5943/2)  
This is working for me after I had regenerated my local certificat.

I also specified a way to host pydio as http, you would need to add a second entry in cloudflare using http2 on your grpc port for pydio sync. Though using tls works for me so I would recommend using that.

> Cloudflare (see above post):
> 
> - Enabled gRPC:
> - Dashboard/Domain/Network/gRPC |-\> On
> 
> - Enable HTTP2,NoTLSVerify:
> - Dashboard/Zero Trust/Networks/Tunnels/Configure/Public Hostname/Edit/Create/Additional app settings/TLS |-\> On (required type: https)

> Local/Docker:
> 
> - Allow port (tcp) via firewall
> - Docker:
> - Add `--protocol http2` to cloudflare
> - using docker compose: cloudflare-tunnel-service \> `command: tunnel run --protocol http2 ...`

My working compose file:

```yaml
services:
  cloudflare-tunnel:
    container_name: cloudflare-tunnel
    image: cloudflare/cloudflared:latest
    restart: unless-stopped
    command: tunnel run --protocol http2
    env_file:
      # env requires: `TUNNEL_TOKEN=...` (also make this `chmod 600`)
      - ./envionment.env
    networks:
      - default
      - cloudflare

services:
  pydio:
    image: lscr.io/linuxserver/pydio-cells:latest
    hostname: pydio
    container_name: pydio
    restart: unless-stopped
    environment:
      # Linuxserver docs: https://docs.linuxserver.io/images/docker-pydio-cells/#docker-cli-click-here-for-more-info
      - PUID=1000
      - PGID=1000
# - TZ=Europe/Berlin
      - SERVER_IP=0.0.0.0:8080
      - EXTERNALURL=https://cloudflare.domain
      - CELLS_LOG_DIR=/config/log
      - CELLS_WORKING_DIR=/config
      - CELLS_DATA=/config/data
      # Uncomment following env and grpc port to use http (no TLS)
# - CELLS_BIND=0.0.0.0:8080
# - CELLS_EXTERNAL=https://cloudflare.domain
# - CELLS_NO_SSL=1
# - CELLS_GRPC_EXTERNAL=50051 
    networks:
      - cloudflare
      - pydio
    ports:
      - "8080:8080" # http (frontend)
# - "50051:50051" # gRPC, cloudflare fix: https://forum.pydio.com/t/how-to-configure-pydio-cloudflare-tunnel-to-support-cellssync/5943/2
    depends_on:
      - "db"
    volumes: 
      # fix storage issues: https://forum.pydio.com/t/cannot-add-storages-in-pydio-cells/4000
      - ${PYDIO_ROOT}:/config
      - ${PYDIO_DATA}:/config/data
      - ${PYDIO_SHARED}:/config/shared-media:z # Shared media => use "existing data import"
    deploy:
      resources:
        limits:
          cpus: '2.0' # max 100% on 2 cores
          memory: 2G

  mysql:
    image: mysql:latest
    hostname: pydio-db
    container_name: pydio-db
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: ${MSQL_PWD}
      MYSQL_DATABASE: ${PYDIO_DB}
      MYSQL_USER: ${PYDIO_DB_USR}
      MYSQL_PASSWORD: ${PYDIO_DB_PWD}
    command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci]
    volumes:
      - ${MYSQL_DATA}:/var/lib/mysql
    networks:
      - pydio

networks:
  cloudflare:
    name: cloudflare
    internal: true

  pydio:
    name: pydio
    internal: true

```

Note: When I had cert issues, I regenerated the config after deleting `config/certs`, then restart the docker container.

```bash
$ docker exec -it --user=1000 pydio bash
1000@pydio:/# cells configure sites
The following sites are currently defined:
+---+----------------------+-------------+------------------------+
| # | BIND(S) | TLS | EXTERNAL URL |
+---+----------------------+-------------+------------------------+
| 0 | https://0.0.0.0:8080 | Self-signed | https://cloudflare.dom |
+---+----------------------+-------------+------------------------+
> Quit

```
