Skip to content

Office File Preview |500| Error #911

@JDB321Sailor

Description

@JDB321Sailor

Description
I get a |500| error in the filebrowser log when filebrowser attempts but fails to load document previews. I got no log entries in Onlyoffice before, during or after the preview loading process. Onlyoffice docker deployment has no log entries when opening, editing, saving or closing a word document.

** I can open, edit and save the documents with filebrowser and onlyoffice intergration without a problem. **

I have filebrowser installed with Traefik as a reverse proxy. I initially had the same problem as OnlyOffice Download Failed #650, however I was able to resolve that problem by implementing the resolution provided at: https://forum.onlyoffice.com/t/adding-documentserver-to-existing-traefik-proxy-works-halfway-but-cannot-open-documents/3239/12, specifically the part to add the traefik labels:

  • "traefik.enable=true"
  • "traefik.http.routers.onlyoffice.rule=Host(office.my-super.domain)"
  • "traefik.http.routers.onlyoffice.middlewares=onlyoffice-headers"
  • "traefik.http.middlewares.onlyoffice-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
  • "traefik.http.middlewares.onlyoffice-headers.headers.accessControlAllowOriginList=*"

**** I attempted to see if the issue had been described elsewhere and I couldn't find anything. ****

Expected behaviour
Onlyoffice document previews load in filebrowser.

What is happening instead?
Previews fail to load and I get a |500| entry in the filebrowser log.

docker logs filebrowser output(keys and url values have been truncated or changed for privacy):
2025/07/04 14:23:43 [INFO ] Initializing
FileBrowser Quantum (v0.7.11-beta)
2025/07/04 14:23:43 [INFO ] Using Config file : config.yaml
2025/07/04 14:23:43 [INFO ] Auth Methods : [password oidc]
2025/07/04 14:23:43 [INFO ] Using existing database : database/database.db
2025/07/04 14:23:43 [INFO ] Sources : [Guests: /folder/jellyfinmedia/Filebrowser folder: /folder/jellyfinmedia]
2025/07/04 14:23:43 [INFO ] Media Enabled : true
2025/07/04 14:23:43 [INFO ] MuPDF Enabled : true
2025/07/04 14:23:43 [INFO ] Running at : http://localhost/
2025/07/04 14:23:44 [INFO ] initializing index: [Guests]
2025/07/04 14:23:44 [INFO ] initializing index: [folder]
2025/07/04 14:23:44 [INFO ] Index assessment : [Guests] complexity=simple directories=10 files=62
2025/07/04 14:23:44 [INFO ] Index assessment : [folder] complexity=simple directories=53 files=725
2025/07/04 14:43:33 GET | 200 | 172.18.0.7:53444 | admin@exam.. | 2ms | "/api/resources?path=%2FFilebrowser%2F&source=folder"
2025/07/04 14:43:33 POST | 200 | 172.18.0.7:53444 | admin@exam.. | 0ms | "/api/auth/renew"
2025/07/04 14:43:36 GET | 200 | 172.18.0.7:53444 | admin@exam.. | 3ms | "/api/resources?path=%2FFilebrowser%2FOffice%2F&source=folder"
2025/07/04 14:43:40 GET | 500 | 172.18.0.7:53444 | admin@exam.. | 4075ms | "/api/preview?path=%2FFilebrowser%2FOffice%2Ftest.doc&key=1234567898765&source=folder&inline=true"
2025/07/04 14:43:43 GET | 500 | 172.18.0.7:53452 | admin@exam.. | 7079ms | "/api/preview?path=%2FFilebrowser%2FOffice%2Ftest1.doc&key=1234567898765&source=folder&inline=true"
2025/07/04 14:43:51 GET | 200 | 172.18.0.7:53452 | admin@exam.. | 3ms | "/api/resources?path=%2FFilebrowser%2FOffice%2Ftest1.doc&source=folder"
2025/07/04 14:43:51 GET | 200 | 172.18.0.7:53452 | admin@exam.. | 1ms | "/api/resources?path=%2FFilebrowser%2FOffice%2Ftest1.doc&source=folder&content=true"
2025/07/04 14:43:51 GET | 200 | 172.18.0.7:53452 | admin@exam.. | 1ms | "/api/onlyoffice/config?url=https://filebrowser.example.com/api/raw?files=folder::%2FFilebrowser%2FOffice%2Ftest1.doc"
2025/07/04 14:43:52 POST | 200 | 172.18.0.7:53452 | admin@exam.. | 0ms | "/api/onlyoffice/callback?path=folder::/Filebrowser/Office/test1.doc&auth=(long auth key value trunicated)"
2025/07/04 14:43:52 GET | 200 | 172.18.0.7:53452 | admin@exam.. | 0ms | "/api/raw?files=folder::/Filebrowser/Office/test1.doc&auth= (long auth key value trunicated)"
2025/07/04 14:43:55 GET | 200 | 172.18.0.7:53452 | N/A | 0ms | "/files/folder/Filebrowser/Office"
2025/07/04 14:43:55 POST | 200 | 172.18.0.7:53444 | admin@exam.. | 0ms | "/api/onlyoffice/callback?path=folder::/Filebrowser/Office/test1.doc&auth=(long auth key value trunicated)"
2025/07/04 14:43:55 GET | 200 | 172.18.0.7:53444 | admin@exam.. | 0ms | "/api/users?id=self"
2025/07/04 14:43:55 GET | 200 | 172.18.0.7:53444 | admin@exam.. | 2ms | "/api/resources?path=%2FFilebrowser%2FOffice&source=folder"
2025/07/04 14:43:55 GET | 200 | 172.18.0.7:53444 | admin@exam.. | 1ms | "/api/jobs/status/sources"
2025/07/04 14:43:59 GET | 500 | 172.18.0.7:53444 | admin@exam.. | 4027ms | "/api/preview?path=%2FFilebrowser%2FOffice%2Ftest.doc&key=1234567898765&source=folder&inline=true"
2025/07/04 14:44:02 GET | 500 | 172.18.0.7:42296 | admin@exam.. | 7035ms | "/api/preview?path=%2FFilebrowser%2FOffice%2Ftest1.doc&key=1234567898765&source=folder&inline=true"
user@server1:/docker/containers/filebrowser$

Additional context
filebrowser docker compose yaml file:

services:
  filebrowser:
    image: gtstef/filebrowser:0.7.11-beta
    container_name: filebrowser
    volumes:
      - '/media/mediastore/desktop:/folder'
      - '/docker/containers/filebrowser/database:/home/filebrowser/database'
      - '/docker/containers/filebrowser/config/config.yaml:/home/filebrowser/config.yaml'
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.filebrowser.rule=Host(`filebrowser.example.com`)'
      - 'traefik.http.routers.filebrowser.entrypoints=websecure'
      - 'traefik.http.routers.filebrowser.tls=true'
      - 'traefik.http.routers.filebrowser.tls.certresolver=cloudflare'
      - 'traefik.http.services.filebrowser.loadbalancer.server.port=80'
    networks:
      - frontend
    restart: unless-stopped
networks:
  frontend:
    external: true

volumes:
  database:
    driver: local
  config:
    driver: local
  folder:
    driver: local

filebrowser config.yaml file:

server:
  port: 80
  baseURL: "/"
  database: "database/database.db"
  sources:
    - path: "/folder/jellyfinmedia"
      name: folder
    - path: "/folder/jellyfinmedia/Filebrowser"
      name: Guests
      config:
        defaultUserScope: "/guests"
        defaultEnabled: true
auth:
  methods:
    noauth: false
    password:
      enabled: true
      minLength: 5
      signup: false
    oidc:
      enabled: true
      clientId: "ClientID authentik value here"
      clientSecret: "clientSecret authentik value here"
      issuerUrl: "https://auth.example.com/application/o/filebrowser/"
      scopes: "email openid profile"
      userIdentifier: "email"
      disableVerifyTLS: false
      logoutRedirectUrl: "https://auth.example.com/application/o/filebrowser/end-session/"
      createUser: true
      adminGroup: "admin"
userDefaults:
  preview:
    image: true
    popup: true
    video: false
    office: true
    highQuality: false
  darkMode: true
  singleClick: true
  permissions:
    admin: false
    api: false
  loginMethod: oidc
integrations:
  office:
    url: "https://office.example.com"
    secret: jwtkeyvaluehere

How to reproduce?
Have filebrowser and onlyoffice installed. Utilize traefik as reverse proxy for both.

I included all of the compose file for the service to show how my system is configured.

Onlyoffice is deployed using the following compose.yaml deployment:

services:
  onlyoffice-documentserver:
    build:
      context: .
    image: onlyoffice/documentserver
    container_name: onlyoffice-documentserver
    depends_on:
      - onlyoffice-postgresql
      - onlyoffice-rabbitmq
    environment:
      - DB_TYPE=postgres
      - DB_HOST=onlyoffice-postgresql
      - DB_PORT=5432
      - DB_NAME=onlyoffice
      - DB_USER=onlyoffice
      - AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq
      - JWT_ENABLED=true
      - JWT_SECRET=jwtkeyvaluehere
      - JWT_HEADER=Authorization
      - JWT_IN_BODY=true
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.onlyoffice.rule=Host(`office.example.com`)"
      - "traefik.http.routers.onlyoffice.entrypoints=websecure"
      - "traefik.http.routers.onlyoffice.tls.certresolver=cloudflare"
      - "traefik.http.routers.onlyoffice.service=onlyoffice"
      - "traefik.http.services.onlyoffice.loadbalancer.server.port=80"
      - "traefik.http.routers.onlyoffice.middlewares=onlyoffice-headers"
      - "traefik.http.middlewares.onlyoffice-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
      - "traefik.http.middlewares.onlyoffice-headers.headers.accessControlAllowOriginList=*"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/info/info.json"]
      interval: 30s
      retries: 5
      start_period: 60s
      timeout: 10s
    stdin_open: true
    restart: always
    stop_grace_period: 60s
    volumes:
       - /docker/containers/onlyoffice/Docker-DocumentServer/data:/var/www/onlyoffice/Data
       - /docker/containers/onlyoffice/Docker-DocumentServer/logs:/var/log/onlyoffice
       - /docker/containers/onlyoffice/Docker-DocumentServer/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files
       - /docker/containers/onlyoffice/Docker-DocumentServer/public:/var/www/onlyoffice/documentserver-example/public/files
       - /docker/containers/onlyoffice/Docker-DocumentServer/fonts:/usr/share/fonts
    networks:
      - frontend
      - backend

  onlyoffice-rabbitmq:
    container_name: onlyoffice-rabbitmq
    image: rabbitmq:3
    restart: always
    expose:
      - '5672'
    healthcheck:
      test: ["CMD", "rabbitmq-diagnostics", "status"]
      interval: 10s
      retries: 3
      start_period: 10s
      timeout: 10s
    networks:
      - backend

  onlyoffice-postgresql:
    container_name: onlyoffice-postgresql
    image: postgres:15
    environment:
      - POSTGRES_DB=onlyoffice
      - POSTGRES_USER=onlyoffice
      - POSTGRES_HOST_AUTH_METHOD=trust
    restart: always
    expose:
      - '5432'
    volumes:
      - /docker/containers/onlyoffice/Docker-DocumentServer/postgresql/db:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U onlyoffice"]
      interval: 10s
      retries: 3
      start_period: 10s
      timeout: 10s
    networks:
      - backend

  certdumper:
    image: ghcr.io/kereis/traefik-certs-dumper:1.8.7
    container_name: certdumper
    networks:
      - backend
    command: --restart-containers onlyoffice-documentserver
    volumes:
      - /docker/containers/traefik/certs:/docker/containers/traefik/certs:ro
      - /docker/containers/onlyoffice/Docker-DocumentServer/data/certs:/output:rw
    environment:
      - DOMAIN=office.example.com
      - DOCKER_HOST=tcp://socket-proxy:2375
      - ACME_FILE_PATH=/docker/containers/traefik/certs/cloudflare-acme.json
    depends_on:
      socket-proxy:
        condition: service_healthy
    restart: unless-stopped

  socket-proxy:
    image: linuxserver/socket-proxy:3.2.1
    container_name: socket-proxy
    networks:
      - backend
    environment:
      - ALLOW_START=1
      - ALLOW_STOP=1
      - ALLOW_RESTARTS=1
      - CONTAINERS=1
      - EVENTS=1
      - PING=1
      - VERSION=1
      - LOG_LEVEL=info
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped
    read_only: true
    tmpfs:
      - /run
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:2375/version"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

volumes:
  postgresql_data:
    driver: local

networks:
  frontend:
    external: true
  backend:
    external: true

Files

Thank you for working on this amazing project and the help in figuring out what is going wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions