What's new
docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.0.86
(or :latest)
Container healthcheck no longer reports "healthy" when ingest or metadata write-back is silently broken
Previously, the container could report healthy to Docker / Kubernetes / Compose while:
cwa-ingest-servicehad crashed and books dropped in/cwa-book-ingest/weren't being picked up, ORmetadata-change-detectorhad crashed and metadata edits in the UI weren't propagating back to your book files, OR- the web worker was wedged by a heavy in-process job (large library duplicate scan, sustained ingest under load) —
/healthcouldn't respond, but Docker's outer probe timeout sometimes left curl processes lingering instead of cleanly marking the probe failed.
/health now probes the s6 longruns that user features depend on, and the Docker HEALTHCHECK curl is bounded so a wedged web worker surfaces as a failed probe within two seconds. Reverse-proxy keepalive sockets also can't accumulate against the gevent process anymore.
Body shape now includes a services map:
{
"status": "ok",
"uptime": 12345.6,
"version": "Calibre-Web-NextGen/v4.0.86",
"services": {
"cwa-ingest-service": "up",
"metadata-change-detector": "up"
}
}Any service reporting "down" flips the response to HTTP 503 with "status": "degraded", so autoheal / k8s liveness / Compose can restart the container.
Credits
- Reporters: @droM4X (fork #193) and @FRaccie (~200k-book production trace for the wedged-worker symptom).
- Backport: @I-Would-Like-To-Report-A-Bug-Please (CWA #1335) — bounded healthcheck curl + gevent connection close.