<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 verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> This has already been asked to the <a href="https://groups.google.com/forum/#!forum/celery-users" rel="nofollow">discussion group</a> first.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have read the relevant section in the<br>
<a href="http://docs.celeryproject.org/en/latest/contributing.html#other-bugs" rel="nofollow">contribution guide</a><br>
on reporting bugs.</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/issues?q=is%3Aissue+label%3A%22Issue+Type%3A+Bug+Report%22+-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%22PR+Type%3A+Bugfix%22+-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"> 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"> I have included all related issues and possible duplicate issues<br>
in this issue (If there are none, check this box anyway).</li>
</ul>
<h2 dir="auto">Mandatory Debugging Information</h2>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included the output of <code class="notranslate">celery -A proj report</code> in the issue.<br>
(if you are not able to do this, then at least specify the Celery<br>
version affected).</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have verified that the issue exists against the <code class="notranslate">master</code> branch of Celery.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included the contents of <code class="notranslate">pip freeze</code> in the issue.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have included all the versions of all the external dependencies required<br>
to reproduce this bug.</li>
</ul>
<h2 dir="auto">Optional Debugging Information</h2>

<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue on more than one Python version<br>
and/or implementation.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue on more than one message broker and/or<br>
result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue on more than one version of the message<br>
broker and/or result backend.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue on more than one operating system.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue on more than one workers pool.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have tried reproducing the issue with autoscaling, retries,<br>
ETA/Countdown &amp; rate limits disabled.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have tried reproducing the issue after downgrading<br>
and/or upgrading Celery and its dependencies.</li>
</ul>
<h2 dir="auto">Related Issues and Possible Duplicates</h2>

<h4 dir="auto">Related Issues</h4>
<p dir="auto">I use mongo broker and mongo backend.<br>
There is a decoding error while try to get task result with AsyncResult</p>
<p dir="auto"><code class="notranslate">File "task_result.py", line 9, in &lt;module&gt; print(res.result) ...... \python37-32\Lib\json\__init__.py", line 341, in loads raise TypeError(f'the JSON object must be str, bytes or bytearray, ' kombu.exceptions.DecodeError: the JSON object must be str, bytes or bytearray, not dict</code></p>
<p dir="auto">tasks.py</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&gt; @celery.task(name='web.add', bind=True)
&gt; def add_test(self, x):
&gt;     time.sleep(6)
&gt;     message = 'IN WORKER'
&gt;     self.update_state(state='PROGRESS', meta={ 'current': 50, 'total': 100, 'status': message})
&gt;     time.sleep(10)
&gt;     message = 'END'
&gt;     return { 'current': 100, 'total': 100, 'status': message, 'result': { 'video_url': 42, 'video_player_url' : 'https://invidza.com' } }"><pre class="notranslate"><code class="notranslate">&gt; @celery.task(name='web.add', bind=True)
&gt; def add_test(self, x):
&gt;     time.sleep(6)
&gt;     message = 'IN WORKER'
&gt;     self.update_state(state='PROGRESS', meta={ 'current': 50, 'total': 100, 'status': message})
&gt;     time.sleep(10)
&gt;     message = 'END'
&gt;     return { 'current': 100, 'total': 100, 'status': message, 'result': { 'video_url': 42, 'video_player_url' : 'https://invidza.com' } }
</code></pre></div>
<p dir="auto">task_result.py</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="&gt;res = add.AsyncResult('d6605146-9296-463f-9463-9795d6b87f37')
&gt;print(res)
&gt;print(res.result)"><pre class="notranslate"><code class="notranslate">&gt;res = add.AsyncResult('d6605146-9296-463f-9463-9795d6b87f37')
&gt;print(res)
&gt;print(res.result)
</code></pre></div>
<h4 dir="auto">Possible Duplicates</h4>
<ul dir="auto">
<li>None</li>
</ul>
<h2 dir="auto">Environment &amp; Settings</h2>

<p dir="auto"><strong>Celery version</strong>:</p>

<details>
<summary><b><code class="notranslate">celery report</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"><code class="notranslate"></code></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Steps to Reproduce</h1>
<h2 dir="auto">Required Dependencies</h2>

<ul dir="auto">
<li><strong>Minimal Python Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Celery Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Kombu Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Version</strong>: N/A or Unknown</li>
<li><strong>Minimal OS and/or Kernel Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Broker Client Version</strong>: N/A or Unknown</li>
<li><strong>Minimal Result Backend Client Version</strong>: N/A or Unknown</li>
</ul>
<h3 dir="auto">Python Packages</h3>

<details>
<summary><b><code class="notranslate">pip freeze</code> Output:</b></summary>
<p dir="auto">
</p><div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"><code class="notranslate"></code></pre></div>
<p dir="auto"></p>
</details>
<h3 dir="auto">Other Dependencies</h3>

<details>
<p dir="auto">
N/A
</p>
</details>
<h2 dir="auto">Minimally Reproducible Test Case</h2>

<details>
<p dir="auto">
</p><div class="highlight highlight-source-python notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content=""><pre class="notranslate"></pre></div>
<p dir="auto"></p>
</details>
<h1 dir="auto">Expected Behavior</h1>
<p dir="auto">result = {'current': 50, 'total': 100, 'status': 'IN WORKER'}</p>
<h1 dir="auto">Actual Behavior</h1>
<h1 dir="auto">Checklist</h1>
<ul dir="auto">
<li>[x ] 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>[ x] 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>[x ] I have checked the <a href="https://github.com/celery/celery/commits/main">commit log</a><br>
to find out if the bug was already fixed in the main branch.</li>
<li>[ x] 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">Description</h1>
<p dir="auto">I have couple of questions about the <a href="https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/index.html" rel="nofollow">backends-and-brokers</a> page.</p>
<ol dir="auto">
<li>I see under <a href="https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/index.html#rabbitmq" rel="nofollow">RabbitMQ note</a>, it is written,</li>
</ol>
<p dir="auto"><code class="notranslate">If more guaranteed long-term persistence is needed from the result store, consider using PostgreSQL or MySQL (through SQLAlchemy).</code></p>
<p dir="auto">Whereas under <a href="https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/index.html#sqlalchemy" rel="nofollow">SQLAlchemy</a> it is written,</p>
<p dir="auto"><code class="notranslate">Historically, SQLAlchemy has not been the most stable result backend so if chosen one should proceed with caution.</code></p>
<p dir="auto">IMO, these are either two conflicting statements. IMO, The second statement is inaccurate &amp; misleading considering the fact that SQLAlchemy ORM has developed a lot and is very stable. We have been using Airflow + Celery + MySQL as a result backend for more than four years without a single issue. We have been using the open-source tool Apache Superset which is totally dependent on SQLAlchemy and there are no major or consistent issues reported with SQLAlchemy in that project as well.</p>
<p dir="auto">IMO, SQLAlchemy should not be considered a non-stable result backend.</p>
<ol start="2" dir="auto">
<li>There is no configuration reference URL for SQLAlchemy like it is present for other backends. I think we can add a reference to this <a href="https://docs.celeryq.dev/en/latest/userguide/configuration.html#database-backend-settings" rel="nofollow">configuration page section</a>.</li>
</ol>
<h1 dir="auto">Suggestions</h1>
<p dir="auto">If you agree then I am happy to raise a PR to remove this line from the doc.</p>
<p dir="auto"><code class="notranslate">Historically, SQLAlchemy has not been the most stable result backend so if chosen one should proceed with caution.</code></p>
<p dir="auto">and add the above-said configuration doc reference for SQLAlchemy.</p>
<p dir="auto">You just have to let me know which GitHub file in this repo I have to update.</p>