Solutions for common OnlyOffice integration problems including connectivity, authentication, and document opening issues.
Enable Debug logging and Debug Mode link If you are having persistent issues with OnlyOffice, the first thing should be to enable debugger mode.
Enable Frontend Debug Mode link Enable Debug Mode:
Navigate to Profile Settings → File Viewer Options Toggle “Debug OnlyOffice Editor” to ON Open any document with OnlyOffice View the debug tooltip that appears automatically info
You should run the debugger with an admin user to also see backend logs.
What Debug Mode Shows link The debug tooltip provides:
Real-time trace of the integration processNetwork flow analysis between componentsConfiguration details including URLs and domainsSpecific error detection with troubleshooting adviceConnectivity testing to OnlyOffice serverNetwork Flow Diagram link File System (Storage) OnlyOffice Server (Document Server) FileBrowser API (Go Backend) Frontend (Vue Component) File System (Storage) OnlyOffice Server (Document Server) FileBrowser API (Go Backend) Frontend (Vue Component) OnlyOffice Integration Flow Clean parameters instead of complex URL parsing /api/raw or /public/api/raw with auth token OnlyOffice JavaScript API User edits document in browser Status codes: 2=closed with changes 4=closed no changes 6=force save alt [Document has changes] GET /api/onlyoffice/config ?source=X&path=Y[&hash=Z] Validate parameters (source, path, hash) Resolve file scope & check permissions Get file info & generate document ID File metadata Build download URL & callback URL internally OnlyOffice client config (includes download & callback URLs) Initialize document editor with config GET download URL (to fetch file content) Read file content File data File content (with rate limiting if configured) POST /api/onlyoffice/callback ?source=X&path=Y[&hash=Z] (document changes) Include updated document URL in callback payload Download updated document Updated file content Save updated file Save confirmation Clean up document ID (if document closed) Success response {"error": 0}
The diagram shows the communication flow:
Browser ↔ OnlyOffice Server : Editor interfaceOnlyOffice → FileBrowser (download URL): Fetches documentOnlyOffice → FileBrowser (callback URL): Saves changesEnable FileBrowser server debug logs link Configure filebrowser to run with debug logging
Enable OnlyOffice service debug logs link 1
2
3
onlyoffice :
environment :
- LOG_LEVEL=DEBUG
Quick Diagnostics link Verify OnlyOffice is Running link 1
2
3
4
5
6
7
8
# Check health endpoint
curl http://<onlyoffice-server>/healthcheck
# Expected response:
{ "status" :"ok" }
# Check welcome page
curl http://<onlyoffice-server>/welcome
Common Issues link OnlyOffice Server Not Found link report
Problem: Documents don’t open, connection refused errors
Symptoms:
Error messages about connection refused
Can’t reach OnlyOffice server
Documents fail to load
Empty preview screen when opening documents
Solutions:
Verify OnlyOffice is running:
1
2
3
4
5
# Check Docker container status
docker ps | grep onlyoffice
# Check service health
curl http://<onlyoffice-server>/healthcheck
Expected response:
FileBrowser needs correct URLs:
1
2
3
4
integrations :
office :
url : "http://<onlyoffice-server>" # Must be accessible from browser
secret : "your-jwt-secret"
warning
localhost will NOT work if services are in separate containers. Use Docker service name or IP address.
Test the URL from your browser: Navigate to the OnlyOffice URL - you should see a welcome page.
JWT Authentication Errors link report
Problem: “JWT verification failed” or “Invalid token” errors
Symptoms:
Step 1: Generate JWT Secret
Create a strong random secret:
1
2
3
4
5
# Generate 32-byte base64 secret
openssl rand -base64 32
# Or use uuidgen
uuidgen
Step 2: Configure FileBrowser
1
2
3
4
integrations :
office :
url : "http://onlyoffice"
secret : "your-generated-secret" # Use the secret from Step 1
Step 3: Configure OnlyOffice
1
2
3
4
5
onlyoffice :
environment :
- JWT_ENABLED=true
- JWT_SECRET=your-generated-secret # MUST match FileBrowser exactly
- JWT_HEADER=Authorization
warning
The JWT secret must be identical in both configurations, including capitalization and special characters. Any mismatch will cause authentication failures.
HTTPS and SSL/TLS Issues link report
Problem: Mixed content errors, SSL handshake failures
Symptoms:
OnlyOffice does not work with HTTPS out of the box when behind a reverse proxy. You need proper SSL configuration.
For local development without SSL:
1
2
3
4
5
6
7
8
integrations :
office :
url : "http://localhost:8080"
onlyoffice :
environment :
- JWT_ENABLED=true
- JWT_SECRET=your-secret
warning
HTTP is not secure for production. Only use for local testing. Never expose HTTP OnlyOffice to the internet.
Community-contributed Traefik configuration with automatic SSL:
FileBrowser Service:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
filebrowser :
image : gtstef/filebrowser
labels :
- "traefik.enable=true"
- "traefik.http.routers.filebrowser.rule=Host(`files.yourdomain.com`)"
- "traefik.http.routers.filebrowser.entrypoints=websecure"
- "traefik.http.routers.filebrowser.tls.certresolver=letsencrypt"
- "traefik.http.services.filebrowser.loadbalancer.server.port=80"
networks :
- proxy
onlyoffice :
image : onlyoffice/documentserver
environment :
- JWT_ENABLED=true
- JWT_SECRET=your-secret
- JWT_HEADER=Authorization
- ONLYOFFICE_HTTPS_HSTS_ENABLED=false
labels :
- "traefik.enable=true"
- "traefik.http.routers.onlyoffice.rule=Host(`office.yourdomain.com`)"
- "traefik.http.routers.onlyoffice.entrypoints=websecure"
- "traefik.http.routers.onlyoffice.tls.certresolver=letsencrypt"
- "traefik.http.services.onlyoffice.loadbalancer.server.port=80"
# Required headers for OnlyOffice
- "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=*"
networks :
- proxy
networks :
proxy :
external : true
FileBrowser Config:
1
2
3
4
5
6
7
8
9
server :
externalUrl : "https://files.yourdomain.com"
internalUrl : "http://filebrowser:80"
integrations :
office :
url : "https://office.yourdomain.com"
internalUrl : "https://onlyoffice" # (optional) this is the internal url that the filebrowser server can communicate with directly. otherwise url is used
secret : "your-secret"
info
Key points:
Both services behind Traefik with automatic Let’s Encrypt certificates Custom headers required for OnlyOffice CORS internalUrl set for server-to-server communicationnginx reverse proxy configuration:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# OnlyOffice upstream
upstream on lyoffice {
server on lyoffice : 80 ;
}
server {
listen 443 ssl http2 ;
server_name off ice.yourdomain.com ;
ssl_certificate /path/to/cert.pem ;
ssl_certificate_key /path/to/key.pem ;
location / {
proxy_pass http://onlyoffice ;
proxy_set_header Host $host ;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
proxy_set_header X-Forwarded-Proto $scheme ;
# Timeouts
proxy_connect_timeout 300s ;
proxy_send_timeout 300s ;
proxy_read_timeout 300s ;
}
}
FileBrowser Config:
1
2
3
4
5
integrations :
office :
url : "https://office.yourdomain.com"
internalUrl : "http://onlyoffice:80" # (optional)
secret : "your-secret"
Advanced Configuration link External and Internal URLs link See Configuration
Why two URLs?
Browser → The browser always uses integrations.office.url to connect from your browser to only office server.OnlyOffice → Uses either server.externalUrl or server.internalUrl for downloading/saving files to FileBrowser server.FileBrowser → Uses either integratons.office.internalUrl or integrations.office.url to connect from the filebrowser server to OnlyOffice server.Slow Document Loading link Document loading can be quite slow because of the many components onlyoffice needs to talk to. The best way to improve document loading times it to set server.internalUrl so OnlyOffice can communicate directly with filebrowser (it’s possible on same private network).
Getting Help link When asking for help, provide:
Logs: Most imprtantly relevant debug logs from the server, as well as OnlyOffice server logs.Debug mode output (screenshot from browser)Browser console errors (F12 → Console tab)Next Steps link