When photos or videos fail to load in Immich, the problem often appears as broken thumbnails, endless spinning placeholders, missing images, or server errors in the web and mobile apps. For many self-hosted setups, these symptoms are not caused by the images themselves, but by issues in the Immich server, PostgreSQL database, Redis cache, storage paths, reverse proxy, or background workers. A careful troubleshooting process usually reveals whether the system is dealing with a temporary service failure, a damaged database state, incorrect permissions, or a misconfigured deployment.
TLDR: The best fixes for Immich image load errors usually begin with checking container health, server logs, database connectivity, and storage permissions. If images are missing but metadata appears, the issue is often related to file paths, mounted volumes, or thumbnail generation jobs. Restarting services, repairing permissions, rebuilding thumbnails, checking PostgreSQL, and confirming reverse proxy settings can resolve most cases. Regular backups and careful upgrade practices help prevent future Immich server and database problems.
Understanding Why Immich Images Fail to Load
Immich depends on several connected services to display media correctly. The server handles API requests, PostgreSQL stores metadata, Redis supports background tasks, and storage volumes hold original photos, videos, thumbnails, and encoded assets. If any of these pieces fail, the user may see image load errors even though the files still exist on disk.
Common symptoms include:
- Blank thumbnails in the timeline or album view.
- Images opening as black screens or failing with a browser error.
- Mobile app sync problems where uploads appear incomplete.
- Server errors such as 500, 502, 503, or database connection failures.
- Missing assets after changing Docker volumes, storage locations, or environment variables.
Because Immich is usually deployed with Docker Compose, many image load problems can be diagnosed by checking service status, logs, and volume mounts. The goal is to determine whether Immich cannot find the file, cannot read the file, cannot generate thumbnails, or cannot retrieve metadata from the database.
Image not found in postmeta
1. Check Whether All Immich Services Are Running
The first fix is also the simplest: the administrator should verify that all required containers are alive and healthy. In most Docker Compose deployments, Immich uses containers such as immich server, immich machine learning, PostgreSQL, and Redis. If one of these is stopped or restarting repeatedly, images may not load correctly.
A typical check may include:
- Running
docker psto confirm that containers are active. - Using
docker compose psto view service status. - Inspecting restart loops with
docker compose logs. - Confirming that PostgreSQL and Redis are reachable from the Immich server container.
If a container is unhealthy, the administrator should review its logs before restarting everything. A basic restart can help after a temporary crash:
docker compose restartdocker compose up -d
However, repeated failures usually indicate a deeper problem such as a bad environment variable, insufficient memory, disk exhaustion, or database corruption.
2. Inspect Immich Server Logs for Direct Clues
Logs are often the fastest path to the real cause. Image load errors may look similar in the interface, but the server logs can reveal whether Immich is failing because of missing files, permission errors, invalid paths, database timeouts, or failed thumbnail jobs.
Administrators should look for log messages that mention:
- ENOENT, which usually means a file or directory does not exist.
- EACCES or permission denied, which indicates the server cannot read or write files.
- database connection refused, which points to PostgreSQL availability or credentials.
- relation does not exist, which may indicate a failed migration.
- failed to generate thumbnail, which suggests asset processing problems.
For Docker Compose users, service-specific logs can usually be checked with commands such as docker compose logs immich-server or docker compose logs database. If the logs show file path errors, the next step should be to examine volumes and permissions. If they show SQL or migration problems, the database requires attention.
3. Verify Storage Paths and Docker Volume Mounts
One of the most common causes of Immich image load errors is a mismatch between where Immich expects files to be and where they actually exist. This often happens after moving a library, changing the upload location, editing Docker Compose files, migrating to another server, or restoring from backup.
The administrator should confirm that the upload directory is mounted exactly as expected by the Immich containers. The path on the host must be correctly mapped to the path used inside the container. If the database references assets stored under a mounted directory but the container no longer sees that directory, the timeline can still show metadata while thumbnails and originals fail to load.
Important checks include:
- Confirming that the host storage path exists.
- Confirming that the path is mounted into the Immich server container.
- Checking whether original files, thumbnails, and encoded videos are present.
- Making sure a recent migration or restore did not place files in a nested folder by mistake.
A common example is a restored upload directory being placed at /photos/upload/upload instead of /photos/upload. In that case, Immich is not broken; it is simply looking in the wrong location.
4. Fix File and Folder Permissions
Even when files exist in the correct place, Immich may fail to load them if the container user cannot read or write to the storage directory. Permission issues are especially common after copying files from another machine, restoring backups as root, using network storage, or changing operating systems.
The administrator should verify that the Immich containers have permission to access the upload directory and all subdirectories. Both read and write access are important, because Immich may need to create thumbnails, encoded videos, profile images, and other generated assets.
Signs of permission problems include:
- Original images exist but thumbnails are missing.
- New uploads fail, but older images may still display.
- Logs show EACCES, operation not permitted, or permission denied.
- External libraries scan but do not display previews.
The exact fix depends on the host system and deployment. In general, the directory ownership and permissions should allow the container process to read media and write generated files. If network storage is used, the administrator should also confirm user mapping, mount options, and file locking behavior.
5. Confirm PostgreSQL Is Healthy and Reachable
Immich relies heavily on PostgreSQL. If the database is unavailable, overloaded, corrupted, or partially migrated, the application may fail to load images even though the files are intact. The database stores asset records, album relationships, user data, comments, face recognition metadata, and links to file locations.
Database-related image loading problems may appear after an upgrade, sudden shutdown, disk-full event, failed migration, or an incomplete restore. The administrator should check PostgreSQL logs for errors and verify that Immich can connect using the configured database host, port, username, password, and database name.
Potential database fixes include:
- Restarting PostgreSQL if it is stuck or refusing connections.
- Checking disk space, because PostgreSQL may stop working correctly when storage is full.
- Reviewing migration logs after Immich upgrades.
- Restoring from a known good backup if corruption is confirmed.
- Running database maintenance only when the administrator understands the command and has a backup.
Before making major database changes, a backup is essential. A well-preserved PostgreSQL dump and upload directory backup can prevent a small image load issue from becoming permanent data loss.
6. Check for Failed or Pending Background Jobs
Immich uses background jobs to generate thumbnails, extract metadata, transcode videos, recognize faces, and process uploads. If Redis, the job queue, or the worker process is not functioning correctly, original uploads may exist but previews may never appear.
When thumbnails are missing across many assets, the issue may not be the original image file. Instead, Immich may have failed to create or store the thumbnail. The administrator should check the Immich jobs page if available, as well as the server logs, to see whether processing tasks are failing or stuck.
Helpful actions may include:
- Restarting Immich server and Redis containers.
- Re-running thumbnail generation jobs from the administration panel.
- Checking whether machine learning services are consuming too much memory.
- Verifying that the server has enough CPU, RAM, and disk space for processing.
If the system is underpowered, large video files or massive photo imports may cause long processing delays. In that situation, the images may not be broken; they may simply be waiting for jobs to finish.
7. Rebuild Thumbnails and Regenerate Assets
If uploaded originals are safe but thumbnails remain broken, regenerating thumbnails is often one of the best fixes. Immich provides administrative tools and background jobs that can reprocess assets. This is useful after storage migration, permission repair, version upgrades, or interrupted uploads.
Before rebuilding assets, the administrator should make sure the underlying cause has been fixed. Otherwise, the new jobs will fail again. The correct sequence is usually:
- Confirm containers are healthy.
- Confirm storage paths are correct.
- Fix permissions.
- Verify PostgreSQL and Redis.
- Run thumbnail or metadata regeneration jobs.
Regeneration can take time on large libraries, so it is best performed during a low-traffic period. The server should also have sufficient free storage because generated thumbnails and encoded videos can consume significant disk space.
8. Review Reverse Proxy and Network Configuration
If Immich works locally but images fail through a domain name, reverse proxy configuration may be responsible. Nginx, Caddy, Traefik, Cloudflare tunnels, and other proxy layers can interfere with large uploads, WebSocket connections, HTTP headers, or timeouts.
Proxy-related issues often cause images to load inconsistently. Small thumbnails may work, while full-resolution images or videos fail. The mobile app may also behave differently from the browser.
The administrator should check:
- Maximum upload size settings in the proxy.
- Timeout values for slow connections or large media files.
- WebSocket support if required by the deployment.
- Correct forwarded headers, including protocol and host information.
- HTTPS configuration and certificate validity.
A useful test is to access Immich directly on the local network, bypassing the proxy. If images load locally but fail externally, the proxy or DNS route is likely involved.
Image not found in postmeta
9. Make Sure the Server Has Enough Disk Space and Memory
Immich can fail in confusing ways when the host runs out of disk space or memory. PostgreSQL may stop accepting writes, thumbnails may fail to generate, uploads may become incomplete, and containers may restart unexpectedly. Because media libraries grow quickly, storage exhaustion is a frequent cause of sudden image load errors.
The administrator should check disk usage for:
- The upload directory.
- The PostgreSQL data directory.
- Docker volumes and container logs.
- Temporary directories used during processing.
- Backups stored on the same disk.
Memory pressure can also affect image processing, especially when machine learning or video transcoding is enabled. If containers are being killed by the system, logs may show out-of-memory events. Reducing concurrent jobs, adding swap, increasing memory, or moving heavy processing to a stronger machine may improve reliability.
10. Handle Upgrades Carefully
Immich is actively developed, and upgrades can include database migrations, configuration changes, and service changes. Image load errors sometimes appear when an administrator updates the application but does not update the Compose file, environment variables, or companion services correctly.
Best practices for upgrades include:
- Reading the official release notes before updating.
- Backing up PostgreSQL and the upload directory first.
- Updating all Immich containers together, not only one service.
- Checking for required environment variable changes.
- Allowing database migrations to complete before restarting repeatedly.
If an upgrade causes image load errors, the administrator should inspect migration logs and compare the current Compose file with the recommended version. Rolling back without a compatible database backup can be risky, because migrations may not be reversible.
11. Restore from Backup When Data Is Damaged
If database corruption, missing files, or a failed migration has caused serious damage, restoring from backup may be the safest fix. A proper Immich backup should include both the PostgreSQL database and the media storage directory. Backing up only one of these is not enough for a complete recovery.
For example, restoring only image files without the database may leave Immich without metadata and user relationships. Restoring only the database without media files may show assets that cannot physically load. Both pieces must match closely in time to avoid broken references.
Before restoring, the administrator should stop Immich services, preserve the current broken state if possible, and restore to a test location when available. This cautious approach helps prevent overwriting recoverable files.
Preventing Future Immich Image Load Errors
The best long-term fix is prevention. A stable Immich deployment should have reliable backups, monitored disk space, documented volume paths, and careful upgrade habits. Administrators should also avoid making manual database edits unless they fully understand the schema and have a rollback plan.
Recommended preventive steps include:
- Automated database backups stored outside the main server.
- Regular file backups for the upload directory.
- Disk space alerts before storage reaches a critical level.
- Version notes documenting each upgrade and configuration change.
- Periodic restore tests to confirm backups actually work.
With these habits, most Immich server or database issues can be resolved quickly, and image load errors become less likely to threaten the entire photo library.
FAQ
Why are Immich thumbnails not loading even though the photos exist?
Immich may be unable to read the files, generate thumbnails, or access the thumbnail directory. The administrator should check storage mounts, permissions, server logs, Redis, and background jobs.
Can a PostgreSQL problem cause Immich images to disappear?
Yes. PostgreSQL stores asset metadata and file references. If the database is unavailable, corrupted, or restored from the wrong backup, Immich may show missing or broken images even when files still exist.
What should be checked first when Immich images fail to load?
The first checks should be container status, Immich server logs, database health, disk space, and storage volume mounts. These areas reveal most common causes quickly.
Is it safe to rebuild thumbnails in Immich?
It is generally safe if the original files are intact and the server has enough storage and processing power. However, the administrator should fix permissions or path problems before starting regeneration.
Why does Immich work locally but not through a domain?
This usually points to a reverse proxy, HTTPS, DNS, timeout, or upload size configuration issue. Testing Immich directly on the local network can help confirm whether the proxy is responsible.
What is the best backup strategy for Immich?
The best strategy is to back up both the PostgreSQL database and the upload directory. These backups should be stored outside the main server and periodically tested through a restore process.
Can running out of disk space break Immich image loading?
Yes. Low disk space can stop database writes, interrupt uploads, prevent thumbnail generation, and cause container failures. Monitoring available storage is essential for a reliable Immich server.

