The Fix
pip install celery==5.1.0b1
Based on closed celery/celery issue #6555 · PR/commit linked
Production note: This usually shows up under retries/timeouts. Treat it as a side-effect risk until you can verify behavior with a canary + real traffic.
@@ -302,6 +302,10 @@ def __init__(self, main=None, loader=None, backend=None,
self.on_after_fork = Signal(name='app.on_after_fork')
+ # Boolean signalling, whether fast_trace_task are enabled.
+ # this attribute is set in celery.worker.trace and checked by celery.worker.request
+ self.use_fast_trace_task = False
from celery import Celery
app = Celery(broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
@app.task(bind=True)
def worker_name(self):
return self.request.hostname
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.
Option A — Upgrade to fixed release\npip install celery==5.1.0b1\nWhen NOT to use: This fix should not be applied if the global state change is required for other functionalities.\n\n
Why This Fix Works in Production
- Trigger: - [x] I have included all related issues and possible duplicate issues
- Mechanism: Changes the setting of trace optimization from a global module state change to marking it as a Celery object state.
- Why the fix works: Changes the setting of trace optimization from a global module state change to marking it as a Celery object state. (first fixed release: 5.1.0b1).
- 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
- Production symptom (often without a traceback): - [x] I have included all related issues and possible duplicate issues
Proof / Evidence
- GitHub issue: #6555
- Fix PR: https://github.com/celery/celery/pull/6598
- First fixed release: 5.1.0b1
- Reproduced locally: No (not executed)
- Last verified: 2026-02-09
- Confidence: 0.95
- Did this fix it?: Yes (upstream fix exists)
- Own content ratio: 0.62
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“Hi! Yes I can confirm that #6598 solves this problem for me! :)”
“Yes, all 4.x.x versions follow the documentation and works as I would expect. The bug was introduced in 5.0.0 and since then it no longer…”
“> I have managed to bisect the issue to: > > @thedrow mind having a look?”
“OK I was able to fix the issue (this is only dirty not complete fix). Basically, instead of dirty rewriting globals of modules, I have…”
Failure Signature (Search String)
- - [x] I have included all related issues and possible duplicate issues
- or possible duplicates to this issue as requested by the checklist above.
Copy-friendly signature
Failure Signature
-----------------
- [x] I have included all related issues and possible duplicate issues
or possible duplicates to this issue as requested by the checklist above.
Error Message
Signature-only (no traceback captured)
Error Message
-------------
- [x] I have included all related issues and possible duplicate issues
or possible duplicates to this issue as requested by the checklist above.
Minimal Reproduction
from celery import Celery
app = Celery(broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
@app.task(bind=True)
def worker_name(self):
return self.request.hostname
What Broke
Tasks were unable to correctly identify the worker node name, leading to confusion in task routing.
Fix Options (Details)
Option A — Upgrade to fixed release Safe default (recommended)
pip install celery==5.1.0b1
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/6598
First fixed release: 5.1.0b1
Last verified: 2026-02-09. Validate in your environment.
When NOT to Use This Fix
- This fix should not be applied if the global state change is required for other functionalities.
Verify Fix
Re-run the minimal reproduction on your broken version, then apply the fix and re-run.
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.1.0b1 | Fixed |
Related Issues
No related fixes found.
Sources
We don’t republish the full GitHub discussion text. Use the links above for context.