<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?utf8=%E2%9C%93&amp;q=is%3Aissue+label%3A%22Category%3A+Documentation%22+">issues list</a><br>
for similar or identical bug reports.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/pulls?q=is%3Apr+label%3A%22Category%3A+Documentation%22">pull requests list</a><br>
for existing proposed fixes.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the bug was already fixed in the master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all related issues and possible duplicate issues in this issue<br>
(If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="556329540" data-permission-text="Title is private" data-url="https://github.com/celery/celery/issues/5940" data-hovercard-type="issue" data-hovercard-url="/celery/celery/issues/5940/hovercard" href="https://github.com/celery/celery/issues/5940">#5940</a></li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h1 dir="auto">Description</h1>

<p dir="auto">In <a href="https://docs.celeryproject.org/en/latest/getting-started/next-steps.html#calling-tasks" rel="nofollow">Calling Tasks</a>:</p>
<blockquote>
<p dir="auto">You can also inspect the exception and traceback if the task raised an exception, in fact result.get() will propagate any errors by default:</p>
</blockquote>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&gt;&gt;&gt; res = add.delay(2)
&gt;&gt;&gt; res.get(timeout=1)"><pre class="notranslate"><code class="notranslate">&gt;&gt;&gt; res = add.delay(2)
&gt;&gt;&gt; res.get(timeout=1)
</code></pre></div>
<p dir="auto">This example is not working as described because <code class="notranslate">add.delay(2)</code> results in the following error before the user is able to call <code class="notranslate">res.get(timeout=1)</code>:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py&quot;, line 425, in delay
    return self.apply_async(args, kwargs)
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/celery/app/task.py&quot;, line 530, in apply_async
    check_arguments(*(args or ()), **(kwargs or {}))
TypeError: add() missing 1 required positional argument: 'y'"><pre class="notranslate"><code class="notranslate">Traceback (most recent call last):
  File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  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'
</code></pre></div>
<p dir="auto">I suppose <code class="notranslate">check_arguments()</code> is a new function?</p>
<h1 dir="auto">Suggestions</h1>
<p dir="auto">Change the example from:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&gt;&gt;&gt; res = add.delay(2)
&gt;&gt;&gt; res.get(timeout=1)"><pre class="notranslate"><code class="notranslate">&gt;&gt;&gt; res = add.delay(2)
&gt;&gt;&gt; res.get(timeout=1)
</code></pre></div>
<p dir="auto">To an integer and string addition:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&gt;&gt;&gt; res = add.delay(2, '2')
&gt;&gt;&gt; res.get(timeout=1)"><pre class="notranslate"><code class="notranslate">&gt;&gt;&gt; res = add.delay(2, '2')
&gt;&gt;&gt; res.get(timeout=1)
</code></pre></div>
<p dir="auto">This way <code class="notranslate">res = add.delay(2, '2')</code> won't raise <code class="notranslate">TypeError: add() missing 1 required positional argument: 'y'</code>. And <code class="notranslate">res.get(timeout=1)</code> will propagate the following exception:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/celery/result.py&quot;, line 221, in get
    return self.backend.wait_for_pending(
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/celery/backends/asynchronous.py&quot;, line 195, in wait_for_pending
    return result.maybe_throw(callback=callback, propagate=propagate)
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/celery/result.py&quot;, line 333, in maybe_throw
    self.throw(value, self._to_remote_traceback(tb))
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/celery/result.py&quot;, line 326, in throw
    self.on_ready.throw(*args, **kwargs)
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/vine/promises.py&quot;, line 244, in throw
    reraise(type(exc), exc, tb)
  File &quot;/home/abd/python/celery/env/lib/python3.8/site-packages/vine/five.py&quot;, line 195, in reraise
    raise value
TypeError: unsupported operand type(s) for +: 'int' and 'str'"><pre class="notranslate"><code class="notranslate">Traceback (most recent call last):
  File "&lt;stdin&gt;", line 1, in &lt;module&gt;
  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'
</code></pre></div>
<h1 dir="auto">Checklist</h1>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/issues?q=is%3Aissue+label%3A%22Issue+Type%3A+Enhancement%22+-label%3A%22Category%3A+Documentation%22">issues list</a><br>
for similar or identical enhancement to an existing feature.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/pulls?q=is%3Apr+label%3A%22Issue+Type%3A+Enhancement%22+-label%3A%22Category%3A+Documentation%22">pull requests list</a><br>
for existing proposed enhancements.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have checked the <a href="https://github.com/celery/celery/commits/master">commit log</a><br>
to find out if the if the same enhancement was already implemented in the<br>
master branch.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have included all related issues and possible duplicate issues in this issue<br>
(If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h1 dir="auto">Brief Summary</h1>

<p dir="auto">We need to remove the AMQP result backend as it was marked as deprecated in 4.0.</p>
<p dir="auto">A deprecation message was printed for our users and therefore we can remove it.</p>
<h1 dir="auto">Design</h1>
<h2 dir="auto">Architectural Considerations</h2>

<p dir="auto">None</p>
<h2 dir="auto">Proposed Behavior</h2>

<p dir="auto">The AMQP result backend will no longer work and an error will be presented to the user.</p>
<h2 dir="auto">Proposed UI/UX</h2>

<p dir="auto">When the backend is initialized, an <code class="notranslate">ImproperlyConfigured</code> exception is raised with the following message:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="The AMQP result backend has been removed in 5.0.
Please use the RPC result backend or choose another result backend.

This message will be removed in 6.0."><pre class="notranslate"><code class="notranslate">The AMQP result backend has been removed in 5.0.
Please use the RPC result backend or choose another result backend.

This message will be removed in 6.0.
</code></pre></div>
<h2 dir="auto">Diagrams</h2>

<p dir="auto">N/A</p>
<h2 dir="auto">Alternatives</h2>

<p dir="auto">None</p>