Skip to main content
This guide helps you solve common issues when deploying or running Primo.

Installation & Setup Issues

Setup screen doesn’t appear

Symptoms: Going to /admin redirects to sign-in instead of setup Causes:
  1. Superuser already exists (from environment variables or previous setup)
  2. Volume persisted from previous deployment
Solutions:
If you set PRIMO_SUPERUSER_EMAIL and PRIMO_SUPERUSER_PASSWORD, a superuser was created automatically. Use those credentials to sign in.
Deleting the volume deletes all your data. Only do this for fresh installs.

Can’t access after deployment

Symptoms: Browser can’t reach your Primo instance Diagnostics:
Solutions:
  1. Check firewall allows port 8080 (or your configured port)
  2. Verify port mapping in docker-compose.yml: - "8080:8080"
  3. Check if another service is using port 8080:
  1. Check DNS settings point to your server IP
  2. Wait for DNS propagation (up to 48 hours)
  3. Test with server IP directly: http://YOUR_IP:8080

Runtime Issues

”No space left on device” error

Cause: Docker volume or host system out of disk space Solutions:

Database locked errors

Symptoms: Errors mentioning “database is locked” Cause: Multiple processes trying to write to SQLite simultaneously Solutions:
  1. Ensure only one Primo container is running:
  1. Restart the container:
  1. If persists, check for file permissions:

Publishing fails or times out

Symptoms: Publish button hangs or shows error Diagnostics:
Common Causes:
Check browser console for JavaScript errors. Fix any Svelte compilation errors in your blocks.
Increase Docker memory limit:
Check if your server can reach external CDNs (for Svelte compiler):

Performance Issues

Slow editor loading

Causes:
  • Large blocks with heavy dependencies
  • Slow network connection
  • Server resource constraints
Solutions:
  • Remove unused dependencies
  • Split large blocks into smaller ones
  • Use lazy loading for images
Upgrade to a larger VPS or increase Railway/Fly.io resources.
Configure gzip in your reverse proxy (see Deployment Guide).
Point your domain through Cloudflare for caching and compression.

Slow published site

Diagnostics: Common Fixes:
  • Optimize images (compress, use WebP)
  • Minimize JavaScript bundle size
  • Enable caching headers in reverse proxy
  • Use a CDN

Docker Issues

Image pull fails

Error: Error response from daemon: manifest for ghcr.io/primocms/primo:latest not found Solutions:
  1. Check if you’re spelling the image name correctly
  2. Check your internet connection
  3. Try pulling manually:

Permission errors with volume

Error: permission denied when accessing /app/pb_data Solution:

Container keeps restarting

Diagnostics:
Common Causes:
  • Application crash (check logs)
  • Port already in use
  • Out of memory
  • Volume mount issues

Authentication Issues

Can’t sign in

Symptoms: “Invalid credentials” error Checks:
  1. Verify email/password are correct
  2. Check if account exists:
  1. Reset password via PocketBase admin:
  • Go to https://your-domain.com/_/
  • Sign in with superuser
  • Reset user password

Locked out of admin

Solution: Create new superuser via command line:

Migration & Upgrade Issues

Data loss after upgrade

Prevention: Always backup before upgrading:
Recovery: Restore from backup:

Blocks not working after upgrade

Cause: Svelte version incompatibility Solution:
  1. Check release notes for breaking changes
  2. Update block code to match new Svelte version
  3. Re-publish all sites

Network & SSL Issues

SSL certificate errors

Common Causes:
Certbot should auto-renew. If not:
Ensure all assets load via HTTPS. Check:
  • Image URLs in blocks
  • External scripts in head/foot HTML
  • CSS file references
Make sure you’re using certificates from a trusted CA (Let’s Encrypt, not self-signed).

CORS errors

Symptoms: Browser console shows CORS errors Cause: Accessing Primo from a different domain than configured Solution: Ensure PRIMO_APP_URL matches the domain you’re accessing from.

Getting Help

If you’re still stuck:
  1. Check the logs:
  1. Search existing issues:
  2. Ask for help:
  3. File a bug report:
    • Include: OS, Docker version, Primo version, full error logs
    • Create Issue

Next Steps

Deployment Guide

Review deployment best practices

Environment Variables

Configure Primo properly