Skip to content

Troubleshooting

Symptoms are grouped by where you notice them. Server messages are quoted as they appear in the logs (Winston, plain text on stdout).

Message Cause Fix
Provide a valid asset updater ASSET_UPDATER is not dropbox or onedrive. Set it. There is no “no sync” mode; a driver is mandatory.
Failed to read mailconfig.json then exit MAILCONFIG is unset and server/mailconfig.json is missing or unreadable from the process working directory’s parent of dist/ (the server reads ../mailconfig.json relative to the compiled env.js). Set MAILCONFIG to the base64 of your JSON, or keep mailconfig.json next to package.json.
failed to start asset updater then exit The driver’s initialize() failed: for Dropbox, the refresh token could not be exchanged (Failed to refresh Dropbox token). Check DROPBOX_APP_KEY, DROPBOX_APP_SECRET, DROPBOX_REFRESH_TOKEN. See Dropbox.
Connection refused on Postgres DATABASE_URL unset and nothing listens on localhost:5432, or wrong credentials. Start docker-compose up -d in server/, or set DATABASE_URL.
TypeError: Invalid URL at first S3 use MAIN_S3_URL or ASSETS_S3_URL missing or not a URL. Use the http://key:secret@host:port/bucket form.
Migration error at boot Migrations run automatically and one failed, usually because the database was created by hand without the uuid-ossp extension or with a different schema. Start from an empty database owned by the DATABASE_URL user. See Upgrading.
Symptom Cause Fix
Log says Dropbox listing is empty, skipping sync to avoid deleting all assets The app sees an empty root: wrong permission type (app folder vs full Dropbox), wrong account, or the files live in the team space while DROPBOX_USE_TEAM_ROOT is false. Re-check the app’s access type and set DROPBOX_USE_TEAM_ROOT=true for Dropbox Business team folders.
Folders appear but files stay in status creating with no thumbnail The worker is not running, so asset/update-content jobs pile up. Run one process with ENABLE_WORKER=true. See Worker and scaling.
Files appear but have no preview A system package is missing: ffmpeg (video), ghostscript (PDF, EPS, AI), libreoffice (office documents), imagemagick. Install them; the server/Dockerfile does. Then run npm run cli -- check-integrity to re-queue the files.
A file changed in Dropbox but Damvia still serves the old version The sync does not compare checksums, so changed content is only caught by the daily integrity check, and only when the size differs. Run the integrity check by hand. If the new file has exactly the same size, set the row to outdated in SQL: UPDATE asset_files SET status = 'outdated' WHERE name = '...'; and the worker re-fetches it.
OneDrive: nothing is listed, no error ONEDRIVE_DRIVE does not point to an existing path, or the app registration lacks Files.Read.All application permission with admin consent. See OneDrive.
Symptom Cause Fix
After sign-up the screen says the account must be approved approved is false: the email domain is not in the authorized domains list. An admin or a manager of the user’s region approves them under /admin/users, or add the domain under /admin/authorized-domains for future sign-ups. The very first admin is promoted in SQL: see First admin.
The verification or login email never arrives SMTP settings are wrong, or the worker is off (all emails are queued jobs). Check SMTP_*, check the worker is enabled, look at the mailer/* queues in pgboss.job. In development, open MailHog at http://localhost:8025.
The approval request reaches nobody email/request-approval only mails admins and managers of the requester’s region. If that region has none, the job sends nothing. Give each region at least one manager or admin.
Everyone was logged out at once APP_SECRET changed. Expected: tokens are signed with it.
A guest’s invitation link says the link expired or shows the login page The invitation’s expiresAt has passed, or the token in ?dam_token= was issued before an APP_SECRET change. Re-invite the guest.
Symptom Cause Fix
“Email” downloads stay in preparing Worker off, or download/create-archive failing (check the job log). Enable the worker; check disk space in the server’s temp directory, the archive is built there before upload.
Download link opens /link-expired The download is older than 7 days, or the id is unknown. Create a new download.
The browser cannot reach the presigned URL The S3 endpoint in ASSETS_S3_URL is only resolvable from the server. Expose the S3 endpoint publicly (HTTPS) and use that hostname in the URL. See Object storage.
You cannot download more than 10GB. The selection’s total original size is at or above 10 GB. Split the download.
Symptom Cause Fix
Every request fails with a network error VITE_API_ENDPOINT points to the wrong host, or was changed without rebuilding. Fix client/.env and rebuild; the value is baked in at build time.
Deep links (for example /collections/abc) return 404 from the web server The static host lacks the SPA history fallback. See Client build.
The brand colour did not change Tailwind reads client/.env at build time. Restart npm run dev or rebuild.