The Fix
pip install celery==5.5.0
Based on closed celery/celery issue #8997 · PR/commit linked
Production note: Most teams hit this during upgrades or environment changes. Roll out with a canary and smoke critical endpoints (health, OpenAPI/docs) before 100%.
@@ -186,6 +186,9 @@ def remove_if_stale(self):
self.remove()
return True
+ if pid == os.getpid():
+ # this can be common in k8s pod with PID of 1 - don't kill
+ return True
Option A — Upgrade to fixed release\npip install celery==5.5.0\nWhen NOT to use: This fix is not applicable if the PID file is managed outside of Celery's control.\n\n
Why This Fix Works in Production
- Trigger: Celery restarts in Kubernetes but kills itself due to PID file mismatch, causing outages.
- Mechanism: Celery crashes when PID in the file matches the current process PID, especially in Kubernetes pods
- Why the fix works: Prevents Celery from killing itself when the PID in the file matches the current process PID, which can occur in Kubernetes pods. (first fixed release: 5.5.0).
- If left unfixed, the same config can fail only in production (env differences), causing startup failures or partial feature outages.
Why This Breaks in Prod
- Celery crashes when PID in the file matches the current process PID, especially in Kubernetes pods
- Production symptom (often without a traceback): Celery restarts in Kubernetes but kills itself due to PID file mismatch, causing outages.
Proof / Evidence
- GitHub issue: #8997
- Fix PR: https://github.com/celery/celery/pull/8998
- First fixed release: 5.5.0
- Reproduced locally: No (not executed)
- Last verified: 2026-02-09
- Confidence: 0.85
- Did this fix it?: Yes (upstream fix exists)
- Own content ratio: 0.77
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“I think this can be closed? Due to merging of - https://github.com/celery/celery/pull/8998”
Failure Signature (Search String)
- Celery restarts in Kubernetes but kills itself due to PID file mismatch, causing outages.
Copy-friendly signature
Failure Signature
-----------------
Celery restarts in Kubernetes but kills itself due to PID file mismatch, causing outages.
Error Message
Signature-only (no traceback captured)
Error Message
-------------
Celery restarts in Kubernetes but kills itself due to PID file mismatch, causing outages.
What Broke
Celery restarts in Kubernetes but kills itself due to PID file mismatch, causing outages.
Why It Broke
Celery crashes when PID in the file matches the current process PID, especially in Kubernetes pods
Fix Options (Details)
Option A — Upgrade to fixed release Safe default (recommended)
pip install celery==5.5.0
Use when you can deploy the upstream fix. It is usually lower-risk than long-lived workarounds.
Fix reference: https://github.com/celery/celery/pull/8998
First fixed release: 5.5.0
Last verified: 2026-02-09. Validate in your environment.
When NOT to Use This Fix
- This fix is not applicable if the PID file is managed outside of Celery's control.
Did This Fix Work in Your Case?
Quick signal helps us prioritize which fixes to verify and improve.
Prevention
- Capture the exact failing error string in logs and tests so you can reproduce via a minimal script.
- Pin production dependencies and upgrade only with a reproducible test that hits the failing path.
Version Compatibility Table
| Version | Status |
|---|---|
| 5.5.0 | Fixed |
Related Issues
No related fixes found.
Sources
We don’t republish the full GitHub discussion text. Use the links above for context.