Troubleshooting
Photo page returns 500 / log shows MEDIA_SERVICE_TOKEN env required
If media-backed pages (timeline, detail) return 500 and the log shows MEDIA_SERVICE_TOKEN env required, the container is missing MEDIA_SERVICE_TOKEN / MEDIA_JWT_SECRET.
- The root
.envis both gitignored and dockerignored, so it is not baked into the image. These values must be passed as runtime env (composeenvironment:/ Synology Container Manager environment). /api/healthdoes not touch media and stays 200, so a health check won't catch this — verify with a real photo page.
Generate:
openssl rand -hex 32
Page loads but photos don't (broken thumbnails)
The signed URL points at a port that isn't exposed (e.g. :3001).
- This deployment exposes only port 3000; the browser reaches the internal media (
:3001) via the/media/*Next rewrite. - Do not set
MEDIA_PUBLIC_BASE_URL/NEXT_PUBLIC_MEDIA_BASE_URL. Unset falls back toPUBLIC_URL, serving/media/...same-origin. - Setting
:3001makes the browser unable to reach it and images break.
pg16 → pg17 upgrade incompatibility
The Postgres data directory is incompatible across major versions. You cannot bring an existing pg16 volume up under a pg17 image directly.
pg_dumpfrom the old version → restore into pg17, then clearpg/and start, or- use the built-in app backup/restore (Settings → Admin → Backup).
Login drops after switching to https
When PUBLIC_URL changes from http to https, the session cookie flips to the __Secure- prefix. The existing cookie is invalidated, so a one-time re-login is required (expected behavior).
Push / digest / memory notification times are off
Quiet hours, digests, and memory pushes are evaluated using container-local time. If TZ is wrong (e.g. the default UTC), daytime pushes in your local timezone can get suppressed by quiet hours. Set the family timezone, e.g. TZ=Asia/Seoul.
Uploads cut off midway
Large tus uploads and SSE are sensitive to reverse-proxy timeouts. Set the proxy timeout to ≥ 600s and allow WebSocket (on the DSM reverse proxy, Custom Header → Create > WebSocket).
For install-specific issues, also see the troubleshooting sections in the Linux and Synology guides.