Troubleshooting
Keep this page handy when deployment, authentication, or UI behaviors need quick fixes.
Authentication & sessions
OIDC redirect errors: Make sure your identity provider uses
${PUBLIC_URL}/callback(orOIDC_CALLBACK_URL) as the redirect URI.Session resets after restart: Check that
/configis persistent and writable by the server’s user, since the session secret generated whenSESSION_SECRETis unset is kept there; the log saysCould not store the session secretotherwise. Or setSESSION_SECRET.Users logged out after browser restart: Sessions persist by default for 30 days. If users are being logged out, check that
SESSION_SECRET, or/config/session-secretwhen it is unset, stays the same. AdjustSESSION_MAX_AGE_DAYSto change the session duration.Users not admin: Confirm that the user's
groups,roles, orentitlementsinclude a value listed inOIDC_ADMIN_GROUPS(case-insensitive).Cookies marked insecure behind HTTPS: Ensure
PUBLIC_URLuseshttpsand your proxy forwardsX-Forwarded-ProtoandHost.The sign-in screen stops and says you came back without a session: the screen handed a sign-in to the provider three times within ten seconds and got nothing back each time. See OIDC for what to check; the button still works, and one unfinished trip never stops it.
The logo turns and the application never appears: after twelve seconds the page says which of the two it was — a file the proxy in front turned away, or a page that is merely slow — and offers a reload and the sign-in screen. A proxy answering an expired session with a redirect is the usual cause: a browser will not run that as a module.
A folder downloads short, or says it is empty: it held names that are not UTF-8, which a volume carried over from Windows often does. Those entries are read as bytes now and are ordinary rows: they open, copy and download, and the archive holds them. A count of missing rows that still appears means a folder or an entry the server genuinely could not read — a permission, a broken mount, a dangling link — and not a name.
convmv -f cp1252 -t utf8 -r <folder>on the server still renames undecodable names for good if you would rather be rid of them (it tries without writing unless told otherwise).
Access & permissions
- Path marked read-only or hidden: Check Settings → Access Control for matching rules. A
hiddenrule applies to everyone, administrators included; anrorule restricts every account except administrators, so test one with an ordinary account. - A rule seems to do nothing: Its path must be the one NextExplorer shows, volume first (
torrents, notmnt/torrents). The rule editor flags a path that names no folder and offers the folder probably meant. - A lock beside a volume: Nothing can be written in it, and New, Upload and Delete are not offered there — to administrators either. Hover the lock for the reason: the volume is mounted read-only (
:roin the Compose file), the server's user may not write in it (matchPUID/PGIDto the owner on the host), or a rule or the volume's assignment keeps your account to reading. - A volume cannot be renamed or deleted: By design. A volume is a mount, usually somebody's data shared with other programs, so the application refuses to rename, move, copy or delete one — through the interface and through the API alike. Change the mount in your Compose file instead.
- Missing volume entries: Confirm your
docker-composemounts include/mnt/Labelentries and the container has read access. - Path not found after remounting: Restart the container whenever you change volume mounts in your Compose file so the app rescans volumes.
Search & thumbnails
- Slow or missing search results: Install or enable ripgrep. The official image bundles
rg; custom builds need either the tool or fallback search (which may skip large files controlled bySEARCH_MAX_FILESIZE). - Thumbnails not generating: Verify FFmpeg/ffprobe are available (paths override via
FFMPEG_PATH/FFPROBE_PATH) and that/cacheis writable. - Cache rebuild: Clearing
/cachekeeps every account, share and setting, but signs everyone out, and the search index and folder sizes (index.db) are rebuilt by a pass over the volumes. Thumbnails come back as folders are visited.
Reverse proxy issues
- CORS errors: See Fixing CORS errors for
PUBLIC_URLandCORS_ORIGINSguidance. - Public URL mismatch warning in UI: If you see a
PUBLIC_URLmismatch dialog, you’re visiting the app from a different URL than the server is configured for. Either access the app via the configuredPUBLIC_URLdomain or updatePUBLIC_URLto match the URL you’re using and restart. - Websocket or upload failures: Ensure the proxy forwards WebSocket upgrades and
X-Forwarded-*headers. - Trust proxy misconfiguration: Set
TRUST_PROXYtoloopback,uniquelocal, a number of hops, or explicit CIDRs depending on your topology.
Updates & persistence
- Settings lost after update: Mount
/configpersistently; it containsapp.db,logos/andsession-secret. Back this folder up before upgrading. An installation that started on 1.1.7 or earlier keptapp.dbin/cache, and nothing moves it to/configany more; the server warns at start when it finds that file. /cachefilling disk:/cacheholds thumbnails, sessions andindex.db. Deleting it reclaims the space at the cost above.THUMBNAIL_CACHE_MAX_FILESbounds the thumbnails andRAW_PREVIEW_CACHE_MAX_FILESthe RAW previews;SEARCH_INDEX_EXCLUDEkeeps folders nobody searches out of the index.
ONLYOFFICE token errors
- "Document security token is not correctly configured" typically means the Document Server and nextExplorer share mismatched
ONLYOFFICE_SECRET. Double-check the secret stored in/etc/onlyoffice/documentserver/local.jsonand update both sides to match. - If
ONLYOFFICE_SECRETis not set at all, nextExplorer signs with a secret derived from the session secret instead of reusing it, and logs a warning at startup. That derived secret stays the same as long as the session secret does:SESSION_SECRET, or/config/session-secretwhen it is unset. Deployments that relied on the old fallback — Document Server configured with the value ofSESSION_SECRET, noONLYOFFICE_SECRET— must now setONLYOFFICE_SECRETexplicitly on both sides.
