Common Errors
Frequently encountered errors and step-by-step diagnosis.
Each section lists the symptom, then a numbered checklist you can run top-to-bottom. Stop as soon as one step surfaces the cause — later steps assume earlier ones passed.
Database connection errors
Symptom: "Database connection failed" on startup
-
Is Postgres actually up?
pg_isready -h "$DB_HOST" -p "${DB_PORT:-5432}"If this fails, start Postgres (Docker users:
docker compose up -d postgres) before continuing. -
Are the credentials in
.envthe ones Postgres actually expects?psql -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME"If this prompts for a password and fails,
DB_PASSWORDis wrong. -
Is the backend pointing at the right host? Inside Docker Compose, the host is the service name (e.g.
postgres), notlocalhost. -
Firewall / network. If Postgres runs on another machine, confirm the port is reachable:
nc -zv $DB_HOST 5432.
Redis connection errors
Symptom: "Redis connection failed"
The app runs without Redis — caching, rate limits, and the SSE event stream degrade, but uploads and downloads still work. If you don't need those features, you can ignore the error.
- Is Redis running?
redis-cli -h "$REDIS_HOST" -p "${REDIS_PORT:-6379}" ping— should printPONG. - Auth enabled? If Redis requires a password, set
REDIS_PASSWORDin.env. - Right host in Docker? Use the compose service name (
redis), notlocalhost, from inside containers.
Storage limit errors
Symptom: "Storage limit exceeded"
- Check the user's quota in Settings → Storage. If it's close to full, delete files or empty trash — trash counts toward quota.
- Is it the per-user quota or the disk? If the backend host itself is out of disk (
df -hshows 100%), no quota increase will help — free disk first. - Admin override. An admin can raise the limit for a specific user in Settings → Registered Users.
Symptom: "This file is too large" on a single upload
The file exceeds the per-request max upload size (separate from storage quota).
- Admin → Settings → Storage → Max upload size. Raise it if appropriate.
- Reverse proxy limits. If you run nginx in front of the backend,
client_max_body_sizemust also be raised — otherwise nginx rejects the request before it reaches the backend. - Split the file if you can't change the limits.
Upload errors
Symptom: "Upload failed" (generic)
- Check disk space on the backend host:
df -h. - Check
UPLOAD_DIRpermissions — the backend process must be able to write to it. - Network stability — retry once; transient drops cause this too.
- MIME detection failure — very small or truncated files can fail magic-byte detection. Try re-exporting the file.
See Upload Issues for upload-specific problems.
Authentication errors
Symptom: "Invalid credentials"
- Confirm email + password — passwords are case-sensitive.
- Is MFA enabled? If yes, the login flow needs a TOTP code; a missing code surfaces as this error.
- Account disabled? Admin can check Settings → Registered Users.
- Rate limit. After 25 failed attempts in 15 minutes, further attempts are rejected until the window expires. Wait or reset from another network.
See Auth Issues for deeper auth troubleshooting.
Related Topics
- Auth Issues - Authentication problems
- Upload Issues - Upload problems
- API Errors - Error codes