Troubleshooting
Common issues and solutions for Comicarr.
Common Issues
Docker permission errors
Files created by Comicarr are owned by the wrong user, or media volumes are not writable.
Cause: The PUID and PGID environment variables do not match the owner of your mounted volumes.
Fix: Run id on the host and set the values in your docker-compose.yml:
id
# uid=1000(user) gid=1000(user)environment:
- PUID=1000
- PGID=1000Recreate the container after changing these values. The entrypoint warns if /comics, /downloads, or /manga are not writable; fix host permissions rather than chown-ing media trees inside the container.
First-run setup token required
Setup fails with “Invalid setup token”.
Cause: On first run, Comicarr generates a one-time setup token and requires it when creating the admin account (especially in Docker quiet mode).
Fix:
docker logs comicarr 2>&1 | grep SETUPEnter the printed token on the setup form along with username and password (min 8 characters).
ComicVine API rate limiting
Metadata lookups fail or return errors when adding multiple series.
Cause: ComicVine enforces rate limits. The default CVAPI_RATE is 2 requests per second.
Fix:
- Reduce
CV_MAX_PARALLEL_REQUESTS(config / ComicVine settings under Settings → API & providers area for related options) - Enable ComicVine response caching to avoid redundant requests
- Space out bulk additions rather than adding many series at once
Download client connection failures
Comicarr cannot reach SABnzbd, NZBGet, or a torrent client.
Fix:
- Verify host, port, and credentials in
config.ini(the Settings → Download clients tab is read-only status) - If both services run in Docker, use the container name as the hostname (e.g.,
sabnzbdinstead oflocalhost) - Check that the containers are on the same Docker network
- Test connectivity from inside the Comicarr container:
docker exec comicarr curl -s http://sabnzbd:8080
Encrypted credentials after config restore
After restoring a config.ini backup, credentials fail to decrypt.
Cause: Encrypted values (prefixed with gAAAAA) are tied to the master key in .secure/master.key. If the key file does not match, decryption fails.
Fix: Copy the entire .secure/ directory (or at least master.key) alongside config.ini when migrating or restoring. If the key is lost, re-enter all credentials — they will be re-encrypted with the new key.
Search returning no results
Automatic or manual searches find nothing for series that should have results.
Fix:
- Verify Newznab/Torznab provider configuration in
config.ini - Confirm API keys are valid for each provider
- Check
USENET_RETENTION(default: 3500 days) — reduce if your provider has shorter retention - Review provider order settings so preferred providers are enabled
- Check application logs for provider-specific errors
Post-processing failures
Downloaded files are not moved or renamed after download completes.
Fix:
- Verify path permissions: the container user (
PUID/PGID) must have write access to both/downloadsand/comics - Check that
DESTINATION_DIRis set and writable - Review logs under the data directory for specific error messages
- Ensure the download client reports the correct download path inside the container
Stuck downloads after a restart
Issues remain “Snatched” or post-processing never finishes after a crash.
Fix:
- Restart Comicarr once and check logs for
[RECOVERY]/[JOURNAL]lines - Allow a full
stop_grace_period(Compose defaults to 30s) so workers can flush the pipeline journal - Confirm the download client still has the item (or completed history) and that paths are writable
- See Download Pipeline & Recovery
Migration issues
The Mylar3 migration fails or reports errors.
Fix:
- Verify
mylar.dbis mounted and accessible (Docker often uses/mylar3) - Check file permissions: the container user must be able to read
mylar.dband related SQLite sidecar files - Run a preview migration first
- Check the Comicarr logs for specific table errors
FlareSolverr not working
Direct download providers that require JavaScript rendering fail.
Fix:
- Set
ENABLE_FLARESOLVERR/FLARESOLVERR_URLinconfig.ini(not a dedicated Settings tab) - Confirm FlareSolverr is reachable from the Comicarr container (e.g.,
http://flaresolverr:8191) - Check that the FlareSolverr container is running:
docker logs flaresolverr
AI features not working
AI features are enabled but not producing results, or the AI status shows errors.
Fix:
- Check the circuit breaker state in Settings → AI. If open, the endpoint may be unreachable
- Verify your API key and model with Test Connection
- Non-localhost endpoints should use HTTPS; HTTP is only allowed for local addresses
- Review token usage — if the daily limit is reached, AI features pause until reset
- Check the dashboard activity feed for specific error messages
- For local models (Ollama, LM Studio), ensure the service is running and the model is pulled
AI circuit breaker stuck open
The circuit breaker shows an error state and won't recover.
Fix:
- The circuit breaker transitions to half-open after the cooldown period (default: 300 seconds)
- Verify the underlying issue is resolved (endpoint reachable, API key valid)
- Wait for the cooldown to expire — a successful test request will close the circuit
- As a last resort, restart Comicarr to reset the circuit breaker state
FAQ
Where is the config stored?
Docker: /config/comicarr/config.ini inside the container (host: ./config/comicarr/config.ini with the default volume). Manual install: <datadir>/config.ini (defaults to the app directory unless --datadir is set). Encryption keys: <datadir>/.secure/.
How do I reset my password?
Clear the configured credentials from config.ini (username/password fields under the interface section) or remove them carefully and restart so first-run setup runs again. Prefer restoring from a known-good backup if unsure.
What is the default port?
8090. Change it with the HTTP_PORT setting in config.ini or by mapping a different host port in Docker.
Does Comicarr support CBR files?
Yes. Comicarr can read CBR files natively. If you prefer CBZ format, enable CBR2CBZ_ONLY (post-processing / media settings) to convert CBR to CBZ during post-processing.
How do I use the API?
Most UI API routes use a session cookie after login. A persistent API key (regenerate under Settings → API & providers) works for library browse GETs such as /api/watchlist. See the API documentation. Real-time UI updates use SSE events.
How do I generate a support care package?
python3 Comicarr.py --datadir /path/to/data maintenance --carepackage
# or: maintenance -careSee Care Package. The zip is written under the logs directory with secrets redacted.
Where do I configure download clients and indexers?
Primarily in config.ini. The Download clients Settings tab shows current client labels as read-only. Search provider Newznab/Torznab hosts are not fully editable in the Search tab (quality/size filters are).