The Fix
pip install celery==4.4.1
Based on closed celery/celery issue #5964 · 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.
@@ -328,26 +328,33 @@ exception, in fact ``result.get()`` will propagate any errors by default:
.. code-block:: pycon
- >>> res = add.delay(2)
+ >>> res = add.delay(2, '2')
>>> res.get(timeout=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py", line 425, in delay
return self.apply_async(args, kwargs)
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py", line 530, in apply_async
check_arguments(*(args or ()), **(kwargs or {}))
TypeError: add() missing 1 required positional argument: 'y'
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==4.4.1\nWhen NOT to use: This fix is not applicable if the task signature or arguments are fundamentally changed.\n\n
Why This Fix Works in Production
- Trigger: return self.apply_async(args, kwargs)
- Mechanism: The documentation example for error propagation does not match the current behavior of the add function
- Why the fix works: Fixes the error propagation example in the documentation to match the current behavior by changing the example to use two arguments. (first fixed release: 4.4.1).
- 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
- Shows up under Python 3.8 in real deployments (not just unit tests).
- The documentation example for error propagation does not match the current behavior of the add function
- Surfaces as: Traceback (most recent call last):
Proof / Evidence
- GitHub issue: #5964
- Fix PR: https://github.com/celery/celery/pull/5966
- First fixed release: 4.4.1
- 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.34
Discussion
High-signal excerpts from the issue thread (symptoms, repros, edge-cases).
“<!-- Please fill this template entirely and do not erase parts of it. We reserve the right to close without a response bug reports which are incomplete. --> # Checklist <!-- To check an item on the list replace [ ] with [x]. --> - [x] I hav”
Failure Signature (Search String)
- return self.apply_async(args, kwargs)
Error Message
Stack trace
Error Message
-------------
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py", line 425, in delay
return self.apply_async(args, kwargs)
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py", line 530, in apply_async
check_arguments(*(args or ()), **(kwargs or {}))
TypeError: add() missing 1 required positional argument: 'y'
Stack trace
Error Message
-------------
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/result.py", line 221, in get
return self.backend.wait_for_pending(
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/backends/asynchronous.py", line 195, in wait_for_pending
return result.maybe_throw(callback=callback, propagate=propagate)
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/result.py", line 333, in maybe_throw
self.throw(value, self._to_remote_traceback(tb))
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/result.py", line 326, in throw
self.on_ready.throw(*args, **kwargs)
File "/home/abd/python/celery/env/lib/python3.8/site-packages/vine/promises.py", line 244, in throw
reraise(type(exc), exc, tb)
File "/home/abd/python/celery/env/lib/python3.8/site-packages/vine/five.py", line 195, in reraise
raise value
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Minimal Reproduction
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py", line 425, in delay
return self.apply_async(args, kwargs)
File "/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py", line 530, in apply_async
check_arguments(*(args or ()), **(kwargs or {}))
TypeError: add() missing 1 required positional argument: 'y'
Environment
- Python: 3.8
Why It Broke
The documentation example for error propagation does not match the current behavior of the add function
Fix Options (Details)
Option A — Upgrade to fixed release Safe default (recommended)
pip install celery==4.4.1
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/5966
First fixed release: 4.4.1
Last verified: 2026-02-09. Validate in your environment.
When NOT to Use This Fix
- This fix is not applicable if the task signature or arguments are fundamentally changed.
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
- Make timeouts explicit and test them (unit + integration) to avoid silent behavior changes.
- Instrument retries (attempt count + reason) and alert on spikes to catch dependency slowdowns.
Version Compatibility Table
| Version | Status |
|---|---|
| 4.4.1 | Fixed |
Related Issues
No related fixes found.
Sources
We don’t republish the full GitHub discussion text. Use the links above for context.