Troubleshooting
Solutions to common issues with Media Viewer.
Login Issues
Cannot Log In
Symptoms: Password is rejected even though it's correct.
Solutions:
- Verify you're entering the correct password (passwords are case-sensitive)
- Try using the
resetpwutility if you've forgotten your password - Check server logs for authentication errors
- Try restarting the container
Session Expires Quickly
Symptoms: Frequently logged out while actively using the application.
Solutions:
- Increase
SESSION_DURATIONin your configuration - Check for network issues that might interrupt keepalive requests
- Ensure your browser accepts cookies
Display Issues
Thumbnails Not Loading
Symptoms: Gallery shows placeholder icons instead of thumbnails.
Solutions:
- Wait for thumbnail generation (first load takes time)
- Check that the data directory is writable
- Clear and rebuild thumbnails using the cache button
- Check server logs for errors
Gallery Is Empty
Symptoms: No items appear in the gallery.
Solutions:
- Verify the media directory is mounted correctly
- Check that media files have supported extensions
- Verify file permissions allow reading
- Check server logs for indexing errors
Layout Issues on Mobile
Symptoms: Interface doesn't display correctly on mobile devices.
Solutions:
- Ensure you're using a supported browser
- Try clearing browser cache
- Disable browser extensions that might interfere
- Check if zoom is enabled and reset to 100%
Performance Issues
Slow Gallery Loading
Symptoms: Gallery takes a long time to load.
Solutions:
- Large directories load slower; consider organizing into subfolders
- Check network connection speed
- Thumbnails generate on first view; subsequent loads are faster
- Consider increasing server resources
- Use Prometheus metrics to identify bottlenecks
High Memory Usage
Symptoms: Server uses excessive memory.
Solutions:
- Very large libraries require more memory for thumbnail generation and steady state afterwards
- Set memory limits in Docker configuration (
GOMEMLIMITenvironment variable) - Monitor memory metrics:
media_viewer_memory_usage_ratioandmedia_viewer_go_memalloc_bytes - Restart the container to clear memory
- See Metrics & Monitoring for memory tuning guidance
Slow Indexing
Symptoms: Media indexing takes a very long time, especially on NFS.
Solutions:
- Tune worker count: Set
INDEX_WORKERS=3(or lower) for NFS mounts - see INDEX_WORKERS - Monitor filesystem latency metrics:
media_viewer_filesystem_operation_duration_seconds - Check NFS mount performance with
nfsstatornfsiostat - Review indexer metrics:
media_viewer_indexer_files_per_secondandmedia_viewer_indexer_batch_duration_seconds - For NFS, ensure
asyncmount option is used for better performance - Consider local caching layer for metadata-heavy operations
- See Metrics & Monitoring for indexing performance analysis
NFS Stale File Handle Errors
Symptoms: Errors in logs like "stale file handle" (ESTALE), "broken pipe", or application crashes when browsing rapidly on NFS.
Background: NFS can return stale file handle errors when files are modified, deleted, or the NFS connection is interrupted. Media Viewer automatically retries these operations.
Automatic Retry: Media Viewer includes built-in retry logic for NFS operations:
- File stat operations retry up to 3 times with exponential backoff (50ms → 500ms)
- File open operations use the same retry logic
- Only ESTALE errors trigger retries; other errors fail immediately
- Successful retries are logged: "NFS Stat succeeded on retry X for
"
If you're still seeing ESTALE errors:
- Reduce indexer workers: Lower
INDEX_WORKERSto 1-2 to reduce concurrent NFS operations - Check NFS mount options:
- Check NFS server logs: Look for server-side issues causing file handle invalidation
- Monitor NFS performance: Use
nfsstatornfsiostatto check for saturation - Verify network stability: Check for packet loss or high latency
- Check server resources: Ensure NFS server has adequate CPU and memory
Understanding the retry metrics:
Monitor these Prometheus metrics to see retry effectiveness:
media_viewer_filesystem_retry_attempts_total{operation="stat|open"}- Number of retry attemptsmedia_viewer_filesystem_retry_success_total{operation="stat|open"}- Successful retries (recovered from ESTALE)media_viewer_filesystem_retry_failures_total{operation="stat|open"}- Failed retries (exhausted all attempts)media_viewer_filesystem_estale_errors_total{operation="stat|open"}- Total ESTALE errors encounteredmedia_viewer_filesystem_retry_duration_seconds{operation="stat|open"}- Operation duration including retries- Look for INFO log messages: "NFS Stat succeeded on retry N" indicates recoverable errors
- ERROR log messages: "NFS Stat failed after N retries" indicates persistent issues
Example PromQL queries:
# Rate of retry attempts per second
rate(media_viewer_filesystem_retry_attempts_total[5m])
# Retry success rate
rate(media_viewer_filesystem_retry_success_total[5m]) / rate(media_viewer_filesystem_retry_attempts_total[5m])
# ESTALE error rate
rate(media_viewer_filesystem_estale_errors_total[5m])
# 99th percentile retry duration
histogram_quantile(0.99, rate(media_viewer_filesystem_retry_duration_seconds_bucket[5m]))
Video Playback Issues
Symptoms: Videos don't play or buffer slowly.
Solutions:
- Check that the video format is supported
- Verify network bandwidth is sufficient
- Large video files may buffer slowly on slow connections
- Try a different browser
Data Issues
Tags Not Saving
Symptoms: Added tags disappear after refresh.
Solutions:
- Check that the data directory is writable
- Verify the database file isn't corrupted
- Check server logs for database errors
- Ensure sufficient disk space
Favorites Not Persisting
Symptoms: Favorites disappear after restart.
Solutions:
- Ensure the data volume is properly mounted
- Check that the volume persists between container restarts
- Verify database file permissions
Search Not Finding Items
Symptoms: Search returns no results for items that exist.
Solutions:
- Wait for indexing to complete after adding new files
- Check the exact spelling (search is case-insensitive but exact)
- For tag search, use the
tag:prefix - Try rebuilding the index by restarting the server
Installation Issues
Container Won't Start
Symptoms: Docker container exits immediately.
Solutions:
- Check logs:
docker logs media-viewer - Ensure ports aren't already in use
- Check volume mount paths exist
- Verify all required directories are properly mounted
Permission Denied Errors
Symptoms: Errors about file permissions in logs.
Solutions:
- Check ownership of mounted directories
- Ensure the container user can read media files
- Ensure the container user can write to the data directory
- On Linux, check SELinux or AppArmor policies
Port Already in Use
Symptoms: Error binding to port 8080.
Solutions:
- Change the port mapping:
-p 3000:8080 - Find and stop the conflicting service
- Use
netstatorlsofto identify what's using the port
PWA Issues
PWA Won't Install
Symptoms: No install option appears in browser.
Solutions:
- PWA requires HTTPS (except localhost)
- Clear browser cache and try again
- Check browser compatibility
- Ensure the manifest file loads correctly
PWA Shows Old Content
Symptoms: Updates aren't reflected in the installed PWA.
Solutions:
- Close and reopen the PWA
- Clear PWA data in device settings
- Uninstall and reinstall the PWA
Getting Help
If these solutions don't resolve your issue:
- Check the GitHub Issues for similar problems
- Search closed issues for solutions
- Open a new issue with:
- Detailed description of the problem
- Steps to reproduce
- Server logs (if applicable)
- Browser and device information