Troubleshooting Orthanc: Common Issues and Fixes
1. Orthanc won’t start
- Likely causes: port conflict, incorrect configuration file, insufficient permissions, missing dependencies.
- Fixes:
- Check logs (typically /var/log/orthanc/orthanc.log or systemd journal):
journalctl -u orthancortail -n 200 /var/log/orthanc/orthanc.log. - Verify configuration syntax: run a JSON/YAML validator on Orthanc config file.
- Confirm port availability:
ss -tlnp | grep 8042(adjust port if changed). Stop conflicting service or change Orthanc port. - Ensure proper permissions on storage directory:
chown -R orthanc:orthanc /var/lib/orthanc(or appropriate user). - Install required dependencies and restart:
systemctl restart orthancand recheck logs.
- Check logs (typically /var/log/orthanc/orthanc.log or systemd journal):
2. Web UI inaccessible
- Likely causes: firewall, service not running, wrong host/port, reverse-proxy misconfiguration.
- Fixes:
- Confirm Orthanc process is running:
systemctl status orthanc. - Test local connectivity:
curl -v http://localhost:8042/. - Check firewall rules:
ufw statusoriptables -Land allow the port. - If behind a reverse proxy (NGINX/Apache), ensure proxy_pass and headers (Host, X-Forwarded-For) are correct and proxy buffers/timeouts are sufficient.
- Review browser console/network for CORS or SSL certificate errors; adjust config accordingly.
- Confirm Orthanc process is running:
3. DICOM peers cannot connect / association failures
- Likely causes: AE title mismatch, port blocked, TLS mismatch, network routing issues.
- Fixes:
- Confirm AE titles and ports match between Orthanc and the peer (Orthanc config: DicomModalities / DicomScp settings).
- Test adjacency with storescu/storescp (DCMTK) or using findscu/getscu to simulate associations.
- Check network connectivity and firewall between hosts (ping, traceroute, telnet).
- For TLS: ensure certificates, keys, and cipher suites match, and Orthanc is configured for TLS if peer expects it.
- Inspect Orthanc logs for DIMSE errors and increase log verbosity if needed.
4. Failed or incomplete DICOM transfers (corrupted/partial files)
- Likely causes: network interruptions, client timeouts, incompatible transfer syntaxes, storage issues.
- Fixes:
- Verify transfer syntax negotiation in logs; enable support for required syntaxes or request conversion in client.
- Check disk space and storage health:
df -hand filesystem errors. - Increase timeouts in Orthanc and sender client if transfers are large.
- Retry transfer with storescu to isolate client vs server problem.
- If corruption persists, enable Orthanc debug logging and inspect raw DICOM bytes.
5. Search/find returns incomplete or missing results
- Likely causes: metadata indexing issues, incomplete ingestion, database corruption, incorrect query parameters.
- Fixes:
- Confirm resources exist via REST API:
GET /instances,/series,/studies. - Rebuild or reindex metadata if using plugins or external databases (follow Orthanc docs for reindexing).
- Check Orthanc configuration for enabled plugins that alter indexing (Lua, Elasticsearch) and review their logs.
- Validate query parameters and matching rules (patient ID vs name, date ranges).
- Inspect Orthanc storage for orphaned files and run maintenance scripts if available.
- Confirm resources exist via REST API:
6. Performance issues (high CPU, slow queries)
- Likely causes: large dataset, insufficient resources, heavy plugins (Elasticsearch), synchronous processing.
- Fixes:
- Monitor resources:
top,iotop,vmstat. - Increase RAM/CPU or move Orthanc to a more capable host or container limits.
- Offload search/indexing to Elasticsearch plugin or tune its settings; ensure Elasticsearch cluster is healthy.
- Enable caching where applicable and adjust Orthanc worker/thread settings.
- Profile slow operations via logs and consider asynchronous ingestion for heavy loads.
- Monitor resources:
7. Plugin-related errors (Lua, REST, Elasticsearch)
- Likely causes: version mismatch, misconfiguration, plugin crashes.
- Fixes:
- Ensure plugin versions are compatible with your Orthanc version.
- Review plugin config blocks in Orthanc config and plugin-specific logs.
- Disable plugins one-by-one to isolate the failing plugin.
- Update or reinstall plugin; check for reported issues on the plugin repository.
8. Authentication/authorization failures (HTTP)
- Likely causes: wrong credentials, misconfigured HTTP headers, reverse-proxy altering auth headers.
- Fixes:
- Verify credentials in Orthanc config (Users block) or external auth provider settings.
- If using reverse proxy, ensure it forwards Authorization header:
proxy_set_header Authorization $http_authorization;. - Check token expiry and clock skew if using token-based auth (OAuth).
- Examine Orthanc logs for ⁄403 details.
Quick diagnostic checklist (short)
- Check Orthanc logs and systemd journal.
- Verify service is running and port is reachable.
- Confirm AE titles, ports, and TLS settings for DICOM peers.
- Test DICOM transfers with DCMTK tools.
- Check disk space and permissions.
- Disable plugins to isolate issues.
If you want, provide your Orthanc version, relevant log excerpts, and config snippets and I’ll pinpoint likely causes and fixes.
Leave a Reply