Skip to content

fix(sqs): delete a message rejected without requeue - #2784

Merged
auvipy merged 7 commits into
celery:mainfrom
MehrazRumman:fix/sqs-reject-delete-message
Oct 29, 2026
Merged

auvipy merged 7 commits into
celery:mainfrom
MehrazRumman:fix/sqs-reject-delete-message

Conversation

@MehrazRumman

@MehrazRumman MehrazRumman commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Description

Channel.basic_reject(delivery_tag, requeue=False) on the SQS transport only released the delivery locally. The message stayed in SQS, so it came back once its visibility timeout expired and was received again and again forever.

This PR adds basic_reject to the SQS Channel. When a message is rejected without requeue, it is now deleted from SQS (DeleteMessage with its receipt handle). This is the same fix proposed in #2711, with these differences:

  • The backoff policy keeps working. Celery calls reject(requeue=False) when a task fails, and that is when backoff_policy / backoff_tasks is documented to apply. Messages whose task is listed in backoff_tasks for the queue are still left in SQS and get their visibility timeout changed as before, so they are retried. A new QoS.is_backoff_task() helper decides this.
  • requeue=True is unchanged. The backoff path is not moved behind requeue=True.
  • The delivery is always released. It is released in a finally, even if DeleteMessage raises, so a failed delete cannot hold a prefetch slot.
  • Missing SQS info is not an error. If the delivery has no sqs_message/sqs_queue info, or the tag is unknown, nothing is deleted and the call falls back to the default reject.
  • Docs: the SQS transport docstring now describes how reject behaves.

When a rejected message is kept

The message is left in the queue, as before this PR, when:

  • its task is listed in backoff_tasks, so the backoff policy can retry it;
  • the queue has a redrive policy, so SQS moves the message to the dead-letter queue once it has been received maxReceiveCount times. The policy is read once per queue with GetQueueAttributes, and if that call fails the message is kept;
  • DeleteMessage fails with a ClientError, for example an expired receipt handle. The error is logged instead of raised, so the worker keeps running, and SQS redelivers the message.

Tests

The new unit tests cover every added line:

  • Reject without requeue deletes the message, with or without a routing_key.
  • Reject with requeue does not delete.
  • A backoff task rejected without requeue gets its visibility timeout changed instead of being deleted.
  • Missing sqs_message / sqs_queue, and unknown delivery tags.
  • The delivery is released when DeleteMessage raises, and a ClientError is logged rather than raised.
  • Queues with a redrive policy keep the message; the policy is read once per queue; a failed GetQueueAttributes keeps the message.
  • QoS.is_backoff_task() for listed, unlisted and missing tasks, and for queues with no backoff config.

Integration tests (t/integration/test_sqs.py) reject a message on a queue with a 1 second visibility timeout and check that it is not redelivered, or that it is redelivered when the queue has a redrive policy.

Related: #2711,

Fixes: #2421

basic_reject(requeue=False) only released the delivery locally and left
the message in SQS, so it was redelivered once its visibility timeout
expired and kept coming back forever.

The SQS channel now deletes the message when it is rejected without
requeue. Messages of tasks listed in backoff_tasks are still left in the
queue so the configured backoff policy can retry them, and the delivery
is released even if DeleteMessage fails.
@codecov

codecov Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.72%. Comparing base (cf604c2) to head (6dc0261).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2784      +/-   ##
==========================================
+ Coverage   85.63%   85.72%   +0.08%     
==========================================
  Files          80       80              
  Lines       11543    11592      +49     
  Branches     1394     1401       +7     
==========================================
+ Hits         9885     9937      +52     
+ Misses       1436     1434       -2     
+ Partials      222      221       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@auvipy
auvipy self-requested a review October 24, 2026 04:05
@auvipy auvipy added this to the 5.7.0 milestone Oct 24, 2026
@auvipy

auvipy commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

@ishan-1010 @ChristianMurphy can you check and review this?

Comment thread kombu/transport/SQS/__init__.py Resolved
@auvipy

auvipy commented Oct 26, 2026

Copy link
Copy Markdown
Member

Is the change already covered by existing integration tests?

@auvipy

auvipy commented Oct 26, 2026

Copy link
Copy Markdown
Member

@ChristianMurphy can you check this?

@ChristianMurphy

Copy link
Copy Markdown
Contributor

Sure. I tested 48ff39d with Celery main and a moto SQS server. A message rejected without requeue is now deleted, so SQS no longer redelivers it in a loop.

Deleting it breaks SQS dead-letter queues. With task_acks_late=True and task_acks_on_failure_or_timeout=False, Celery rejects every failed task without requeue. Celery added task_acks_on_failure_or_timeout in 4.3 for SQS users who let SQS retry a failed task and then move it to a dead-letter queue (changelog). With maxReceiveCount: 3, a failing task runs 3 times on main and then moves to the dead-letter queue. On this branch it runs once, and the message is gone.

To answer the opt-in question in the description: I'd skip the delete when the queue has a redrive policy. kombu can read the policy with GetQueueAttributes(AttributeNames=['RedrivePolicy']), which _size() already calls. It only needs to ask once per queue. If AWS denies that call, not deleting seems safest. An opt-in option would also work, but users who don't know about it would still see the loop. Either way, the new docstring paragraph should say what happens on a queue with a redrive policy.

A failed delete stops the Celery worker. basic_reject lets botocore's ClientError through, and Celery's reject() only catches the transport's connection errors. When DeleteMessage failed with the expired receipt handle error, the worker logged Unrecoverable error and exited. basic_ack already catches ClientError: it drops the delivery for a stale receipt handle and rejects it for other errors (SQS/init.py:958-973). Could basic_reject do the same?

On auvipy's integration test question: no. test_reject_no_requeue passes on main too, because it checks while the 1800 second visibility timeout still hides the message. The test below uses a 1 second timeout. It fails on main and passes on this branch. I ran it against moto, not GoAws.

The new tests test_basic_reject_unknown_delivery_tag, test_is_backoff_task and test_is_backoff_task_without_backoff_config leave a mock in qos._delivered. At exit, kombu can't pickle it, prints EMERGENCY DUMP STATE TO FILE, and writes a file to /tmp for each test. Clearing channel.qos._delivered at the end of each test fixes it.

The test
@pytest.mark.env('sqs')
def test_reject_no_requeue_is_not_redelivered(connection):
    conn = connection.clone(transport_options={
        **connection.transport_options, 'visibility_timeout': 1,
    })
    with conn, conn.SimpleQueue('reject_no_requeue_vt') as queue:
        queue.put({'Hello': 'World'})
        queue.get(timeout=5).reject(requeue=False)
        time.sleep(2)  # longer than the visibility timeout
        with pytest.raises(queue.Empty):
            queue.get(timeout=2)
Worker runs

One solo worker on Celery main, with task_acks_late=True and task_acks_on_failure_or_timeout=False. The queue has VisibilityTimeout=2, and each run lasts 15 seconds. fails raises ValueError, and rejects raises Reject(requeue=False).

kombu Task Redrive policy Task runs Left in queue In dead-letter queue
main fails maxReceiveCount: 3 3 0 1
main fails none 6 1 0
main rejects maxReceiveCount: 3 3 0 1
main rejects none 7 1 0
48ff39d fails maxReceiveCount: 3 1 0 0
48ff39d fails none 1 0 0
48ff39d rejects maxReceiveCount: 3 1 0 0
48ff39d rejects none 1 0 0

I patched every DeleteMessage call to fail with the expired receipt handle error. On 48ff39d, the worker exited with code 1 after fails or rejects ran, in both the solo and prefork pools. It kept running on main, and after a task that succeeds.

CRITICAL/MainProcess] Unrecoverable error: ClientError('An error occurred (InvalidParameterValue) when calling the DeleteMessage operation: Value x for parameter ReceiptHandle is invalid. Reason: The receipt handle has expired.')
  File "kombu/message.py", line 142, in reject_log_error
  File "kombu/message.py", line 164, in reject
  File "kombu/transport/SQS/__init__.py", line 996, in basic_reject
  File "kombu/transport/SQS/__init__.py", line 1010, in _delete_rejected_message

Deleting every message rejected without requeue broke SQS dead-letter
queues: with task_acks_on_failure_or_timeout=False, Celery rejects a
failed task without requeue and relies on SQS redelivering it until
maxReceiveCount moves it to the dead-letter queue.

basic_reject now reads the queue's RedrivePolicy once per queue with
GetQueueAttributes and leaves the message in the queue when there is
one, or when the policy cannot be read.

A ClientError from DeleteMessage is now logged instead of raised. Celery
only handles the transport's connection errors there, so an expired
receipt handle stopped the worker.

Also name the routing key in is_backoff_task instead of discarding it,
clear the mocked deliveries the unit tests leave behind, and add
integration tests that reject a message on queues with a short
visibility timeout, with and without a redrive policy.
@MehrazRumman

Copy link
Copy Markdown
Contributor Author

@ChristianMurphy thanks for testing this so thoroughly. All points are addressed in 15f59d1:

Dead-letter queues: I went with your suggestion. Before deleting, basic_reject reads the queue's RedrivePolicy with GetQueueAttributes. The result is cached per queue URL on the transport, so it is only asked once per queue. If the queue has a redrive policy, the message is left in the queue, so SQS keeps redelivering it until maxReceiveCount moves it to the dead-letter queue. If the call fails, the message is also left in the queue. An AccessDenied answer is cached as well, so a worker without that permission doesn't ask on every reject. The docstring now lists when a rejected message is kept: backoff tasks, queues with a redrive policy, and a failed DeleteMessage.

Failed delete: basic_reject now catches ClientError from DeleteMessage and logs a warning instead of raising. The delivery is still released, so it doesn't hold a prefetch slot, and SQS redelivers the message after its visibility timeout. Unlike basic_ack, it doesn't call basic_reject for other error codes, because releasing the delivery is all that reject has left to do.

Integration tests: I added your test_reject_no_requeue_is_not_redelivered test. I also added test_reject_no_requeue_with_redrive_policy_is_redelivered, which creates a queue with a 1 second visibility timeout and a redrive policy, rejects a message without requeue and checks that it is received again. Against GoAws, the first test fails on main and passes on this branch. The second passes on both. All 42 SQS integration tests pass.

Emergency dump: the reject tests now use a fixture that clears channel.qos._delivered afterwards, so no more EMERGENCY DUMP STATE TO FILE.

@ChristianMurphy ChristianMurphy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Re-tested 15f59d1 with a Celery worker against moto. With a redrive policy, a failing task runs 3 times and then moves to the dead-letter queue, as on main. Without one, it runs once and the message is deleted. When DeleteMessage fails, the worker logs the error and keeps running, with both the solo and prefork pools. The SQS unit tests no longer write the emergency dump files.

@ishan-1010 ishan-1010 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ran 15f59d1. SQS unit tests 316 passed, t/integration/test_sqs.py on moto 40 passed (the 2 test_ack_invalid_receipt_with_backoff cases fail on main under moto too). client selection and the non-ClientError path match basic_ack. one question inline about the redrive cache.

stale cache repro (moto on :4100, from the repo root)
"""A redrive policy added while a worker runs is ignored until reconnect: rejected messages are deleted."""
import json, time, uuid
from unittest.mock import patch
import boto3, kombu, kombu.asynchronous
from t.integration.test_sqs import get_connection

patch("kombu.transport.SQS.SNS._SnsSubscription._set_policy_on_sqs_queue").start()
admin = boto3.client("sqs", region_name="us-east-1", endpoint_url="http://localhost:4100",
                     aws_access_key_id="TestUsername", aws_secret_access_key="TestPassword")
prefix = str(uuid.uuid4())[:8] + "_"
dlq_url = admin.create_queue(QueueName=prefix + "dlq")["QueueUrl"]
dlq_arn = admin.get_queue_attributes(QueueUrl=dlq_url, AttributeNames=["QueueArn"])["Attributes"]["QueueArn"]

def receive_and_reject(conn, q):
    msg = conn.SimpleQueue(q).get(timeout=5)
    msg.reject(requeue=False)
    return msg.payload

conn = get_connection(port=4100, queue_prefix=prefix)
conn.transport_options.update(wait_time_seconds=0, visibility_timeout=1)
q = kombu.Queue("work", routing_key="work")
with conn:
    producer = kombu.Producer(conn.channel())
    producer.publish({"n": 1}, routing_key="work", declare=[q])
    print("reject 1 (no redrive policy yet):", receive_and_reject(conn, q))
    url = conn.default_channel._new_queue("work")
    admin.set_queue_attributes(QueueUrl=url, Attributes={"RedrivePolicy": json.dumps(
        {"deadLetterTargetArn": dlq_arn, "maxReceiveCount": "3"})})
    print("redrive policy added to the live queue")
    producer.publish({"n": 2}, routing_key="work", declare=[q])
    print("reject 2 (same connection):", receive_and_reject(conn, q))
    time.sleep(2)
    left = admin.receive_message(QueueUrl=url, WaitTimeSeconds=1).get("Messages", [])
    print("message 2 still in the queue for SQS to redrive:", bool(left))

conn2 = get_connection(port=4100, queue_prefix=prefix)
conn2.transport_options.update(wait_time_seconds=0, visibility_timeout=1)
with conn2:
    kombu.Producer(conn2.channel()).publish({"n": 3}, routing_key="work", declare=[q])
    receive_and_reject(conn2, q)
    time.sleep(2)
    left = admin.receive_message(QueueUrl=url, WaitTimeSeconds=1).get("Messages", [])
    print("after reconnect, message 3 kept for redrive:", bool(left))
reject 1 (no redrive policy yet): {'n': 1}
redrive policy added to the live queue
reject 2 (same connection): {'n': 2}
message 2 still in the queue for SQS to redrive: False
after reconnect, message 3 kept for redrive: True

Comment thread kombu/transport/SQS/__init__.py Resolved
auvipy and others added 3 commits October 27, 2026 21:06
The redrive policy was cached for the connection's lifetime. Adding a
dead-letter queue to a live queue is the usual reaction to a message
looping, but running workers kept deleting rejected messages until they
reconnected, and a delete can't be undone.

Cache the answer per queue for redrive_policy_cache_ttl seconds (300) and
read it again after that, so a dead-letter queue added (or removed) while
workers run applies within five minutes. AccessDenied is cached for the
same time instead of forever.
@auvipy
auvipy merged commit 3892d53 into celery:main Oct 29, 2026
39 checks passed
giuseppe99barchetta added a commit to giuseppe99barchetta/SuggestArr that referenced this pull request Nov 9, 2026
#563)

Bumps the python-deps group in /api_service with 4 updates:
[amqp](https://github.com/celery/py-amqp),
[billiard](https://github.com/celery/billiard),
[kombu](https://github.com/celery/kombu) and
[openai](https://github.com/openai/openai-python).

Updates `amqp` from 5.4.1 to 5.4.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/celery/py-amqp/releases">amqp's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.2</h2>
<h2>What's Changed</h2>
<ul>
<li>docs: fix all Sphinx warnings in <a
href="https://redirect.github.com/celery/py-amqp/issues/362">#362</a> by
<a href="https://github.com/G-Glitch404"><code>@​G-Glitch404</code></a>
in <a
href="https://redirect.github.com/celery/py-amqp/pull/479">celery/py-amqp#479</a></li>
<li>Fix publisher confirm state after channel revive by <a
href="https://github.com/G-Glitch404"><code>@​G-Glitch404</code></a> in
<a
href="https://redirect.github.com/celery/py-amqp/pull/477">celery/py-amqp#477</a></li>
<li>Fix non-UTF-8 field-table keys by <a
href="https://github.com/G-Glitch404"><code>@​G-Glitch404</code></a> in
<a
href="https://redirect.github.com/celery/py-amqp/pull/478">celery/py-amqp#478</a></li>
<li>Always return the consumer tag from basic_consume by <a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
in <a
href="https://redirect.github.com/celery/py-amqp/pull/481">celery/py-amqp#481</a></li>
<li>Forget no_ack consumers cancelled by the broker by <a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
in <a
href="https://redirect.github.com/celery/py-amqp/pull/483">celery/py-amqp#483</a></li>
<li>Send the content header for empty bodies on the slow write path by
<a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
in <a
href="https://redirect.github.com/celery/py-amqp/pull/485">celery/py-amqp#485</a></li>
<li>Flush pending bits around timestamp and byte array fields by <a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
in <a
href="https://redirect.github.com/celery/py-amqp/pull/484">celery/py-amqp#484</a></li>
<li>Release prep for v5.4.2 by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/py-amqp/pull/491">celery/py-amqp#491</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/G-Glitch404"><code>@​G-Glitch404</code></a>
made their first contribution in <a
href="https://redirect.github.com/celery/py-amqp/pull/479">celery/py-amqp#479</a></li>
<li><a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
made their first contribution in <a
href="https://redirect.github.com/celery/py-amqp/pull/481">celery/py-amqp#481</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/celery/py-amqp/compare/v5.4.1...v5.4.2">https://github.com/celery/py-amqp/compare/v5.4.1...v5.4.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/celery/py-amqp/blob/main/Changelog">amqp's
changelog</a>.</em></p>
<blockquote>
<h1>5.4.2</h1>
<p>:release-date: 2026-11-02
:release-by: Asif Saif Uddin (<a
href="https://github.com/auvipy"><code>@​auvipy</code></a>)</p>
<ul>
<li>Fix publisher confirm state after channel revive (<a
href="https://redirect.github.com/celery/py-amqp/issues/477">#477</a>).</li>
<li>Fix non-UTF-8 field-table keys.</li>
<li>Always return the consumer tag from basic_consume (<a
href="https://redirect.github.com/celery/py-amqp/issues/481">#481</a>).</li>
<li>Forget no_ack consumers cancelled by the broker - <a
href="https://redirect.github.com/celery/py-amqp/issues/483">#483</a>.</li>
<li>Send the content header for empty bodies on the slow write
path.</li>
<li>Flush pending bits around timestamp and byte array fields (<a
href="https://redirect.github.com/celery/py-amqp/issues/484">#484</a>).</li>
</ul>
<p>.. _version-5.4.1:</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/celery/py-amqp/commit/9d4a51a104021ef2f1920744087add8638cc2cc6"><code>9d4a51a</code></a>
Bump version: 5.4.1 → 5.4.2</li>
<li><a
href="https://github.com/celery/py-amqp/commit/2c70aa8703b521bf58e024e7cd51e9f73e2a21bc"><code>2c70aa8</code></a>
added changelog for v5.4.2 release</li>
<li><a
href="https://github.com/celery/py-amqp/commit/970fa1371320056f8aaf7e982d8c7353e1897e11"><code>970fa13</code></a>
Flush pending bits around timestamp and byte array fields (<a
href="https://redirect.github.com/celery/py-amqp/issues/484">#484</a>)</li>
<li><a
href="https://github.com/celery/py-amqp/commit/31a4602bbdf4d3b217cb4af4178106e430bad6db"><code>31a4602</code></a>
Send the content header for empty bodies on the slow write path</li>
<li><a
href="https://github.com/celery/py-amqp/commit/b4326437d8073c7e26e2556fd110313fbf16d1a1"><code>b432643</code></a>
Forget no_ack consumers cancelled by the broker</li>
<li><a
href="https://github.com/celery/py-amqp/commit/a259045ab6f997e51e9d4f9bbc0c50d82326d6c6"><code>a259045</code></a>
Always return the consumer tag from basic_consume (<a
href="https://redirect.github.com/celery/py-amqp/issues/481">#481</a>)</li>
<li><a
href="https://github.com/celery/py-amqp/commit/e58240b012d5ed8d8716cf7537d2b36a09d3d7e0"><code>e58240b</code></a>
Fix non-UTF-8 field-table keys</li>
<li><a
href="https://github.com/celery/py-amqp/commit/15fb95f7a89e20b95ebaffcdf89b1473887aa241"><code>15fb95f</code></a>
Fix publisher confirm state after channel revive (<a
href="https://redirect.github.com/celery/py-amqp/issues/477">#477</a>)</li>
<li><a
href="https://github.com/celery/py-amqp/commit/5324feb1428f597af0f21d48e6237eee972c354e"><code>5324feb</code></a>
docs: fix Sphinx warnings in documentation (<a
href="https://redirect.github.com/celery/py-amqp/issues/362">#362</a>)</li>
<li>See full diff in <a
href="https://github.com/celery/py-amqp/compare/v5.4.1...v5.4.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `billiard` from 4.3.1 to 4.3.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/celery/billiard/releases">billiard's
releases</a>.</em></p>
<blockquote>
<h2>v4.3.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix flaky timeout and context availability in
test_on_ready_counter_is_synchronized (<a
href="https://redirect.github.com/celery/billiard/issues/415">#415</a>)
by <a href="https://github.com/0xrutabaga"><code>@​0xrutabaga</code></a>
in <a
href="https://redirect.github.com/celery/billiard/pull/472">celery/billiard#472</a></li>
<li>Fix spawn when the main module is a script by <a
href="https://github.com/RazerM"><code>@​RazerM</code></a> in <a
href="https://redirect.github.com/celery/billiard/pull/470">celery/billiard#470</a></li>
<li>Fix AttributeError on Windows when terminating worker on hard
timeout by <a
href="https://github.com/0xrutabaga"><code>@​0xrutabaga</code></a> in <a
href="https://redirect.github.com/celery/billiard/pull/471">celery/billiard#471</a></li>
<li>Allow a pool to start with zero processes by <a
href="https://github.com/GangEunzzang"><code>@​GangEunzzang</code></a>
in <a
href="https://redirect.github.com/celery/billiard/pull/477">celery/billiard#477</a></li>
<li>Credit READY to the worker that ran the task by <a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
in <a
href="https://redirect.github.com/celery/billiard/pull/474">celery/billiard#474</a></li>
<li>Fix pool terminate() hang when a worker dies holding the outqueue
lock by <a
href="https://github.com/GangEunzzang"><code>@​GangEunzzang</code></a>
in <a
href="https://redirect.github.com/celery/billiard/pull/479">celery/billiard#479</a></li>
<li>Reject nonpositive chunksizes in pool imap methods by <a
href="https://github.com/JackyHsu-X"><code>@​JackyHsu-X</code></a> in <a
href="https://redirect.github.com/celery/billiard/pull/481">celery/billiard#481</a></li>
<li>Raise the task's exception from imap() iterators by <a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
in <a
href="https://redirect.github.com/celery/billiard/pull/480">celery/billiard#480</a></li>
<li>Release Prep for v4.3.2 by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/billiard/pull/482">celery/billiard#482</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/0xrutabaga"><code>@​0xrutabaga</code></a> made
their first contribution in <a
href="https://redirect.github.com/celery/billiard/pull/472">celery/billiard#472</a></li>
<li><a href="https://github.com/RazerM"><code>@​RazerM</code></a> made
their first contribution in <a
href="https://redirect.github.com/celery/billiard/pull/470">celery/billiard#470</a></li>
<li><a
href="https://github.com/LuisFigueroaG"><code>@​LuisFigueroaG</code></a>
made their first contribution in <a
href="https://redirect.github.com/celery/billiard/pull/474">celery/billiard#474</a></li>
<li><a
href="https://github.com/JackyHsu-X"><code>@​JackyHsu-X</code></a> made
their first contribution in <a
href="https://redirect.github.com/celery/billiard/pull/481">celery/billiard#481</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/celery/billiard/compare/v4.3.1...v4.3.2">https://github.com/celery/billiard/compare/v4.3.1...v4.3.2</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/celery/billiard/blob/main/CHANGES.txt">billiard's
changelog</a>.</em></p>
<blockquote>
<h2>4.3.2 - 2026-11-02</h2>
<ul>
<li>Fix flaky timeout and context availability in
test_on_ready_counter_is_synchronized.</li>
<li>Fix spawn when the main module is a script (<a
href="https://redirect.github.com/celery/billiard/issues/470">#470</a>).</li>
<li>Fix AttributeError on Windows when terminating worker on hard
timeout (<a
href="https://redirect.github.com/celery/billiard/issues/471">#471</a>).</li>
<li>Allow a pool to start with zero processes (<a
href="https://redirect.github.com/celery/billiard/issues/477">#477</a>).</li>
<li>Credit READY to the worker that ran the task (<a
href="https://redirect.github.com/celery/billiard/issues/474">#474</a>).</li>
<li>Fix pool terminate() hang when a worker dies holding the outqueue
lock (<a
href="https://redirect.github.com/celery/billiard/issues/479">#479</a>).</li>
<li>Raise the task's exception from imap() iterators (<a
href="https://redirect.github.com/celery/billiard/issues/480">#480</a>).</li>
<li>Reject non-positive chunksize in Pool.imap() and
Pool.imap_unordered(),
including when Python runs with optimization enabled.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/celery/billiard/commit/895817a456af1a56c28675dfe4e22b87b991a72a"><code>895817a</code></a>
Bump version: 4.3.1 → 4.3.2</li>
<li><a
href="https://github.com/celery/billiard/commit/3a9eb788699609b3f810bef8ba28a6ec8bc2b326"><code>3a9eb78</code></a>
updated security guideline</li>
<li><a
href="https://github.com/celery/billiard/commit/b20dd15c52cb5b38094dd7ee22c96a744b10ab5b"><code>b20dd15</code></a>
added changelog for v4.3.2 release</li>
<li><a
href="https://github.com/celery/billiard/commit/17cddec766a5d085f2c49334c8b0eb2e60e88adc"><code>17cddec</code></a>
Raise the task's exception from imap() iterators (<a
href="https://redirect.github.com/celery/billiard/issues/480">#480</a>)</li>
<li><a
href="https://github.com/celery/billiard/commit/7d2fcd2a2d0978d2c9062b8566fac0f7f84e5399"><code>7d2fcd2</code></a>
Reject nonpositive chunksizes in pool imap methods</li>
<li><a
href="https://github.com/celery/billiard/commit/3a806fbfec4c419ea5f776fa6668e26863c4b4c0"><code>3a806fb</code></a>
Fix pool terminate() hang when a worker dies holding the outqueue lock
(<a
href="https://redirect.github.com/celery/billiard/issues/479">#479</a>)</li>
<li><a
href="https://github.com/celery/billiard/commit/fe23965ebe22c5ae9491073d07892d5e0d5b2181"><code>fe23965</code></a>
Credit READY to the worker that ran the task (<a
href="https://redirect.github.com/celery/billiard/issues/474">#474</a>)</li>
<li><a
href="https://github.com/celery/billiard/commit/7efd7735fcdaa384e990dc58bc2755ad6d7e1b37"><code>7efd773</code></a>
Allow a pool to start with zero processes (<a
href="https://redirect.github.com/celery/billiard/issues/477">#477</a>)</li>
<li><a
href="https://github.com/celery/billiard/commit/531c3ae81897bb73ccbb7df38abe4fb7a24d5bfc"><code>531c3ae</code></a>
Fix AttributeError on Windows when terminating worker on hard timeout
(<a
href="https://redirect.github.com/celery/billiard/issues/471">#471</a>)</li>
<li><a
href="https://github.com/celery/billiard/commit/40a82b1533e3e170cc24a5aec91c2c56a8e2c415"><code>40a82b1</code></a>
Fix spawn when the main module is a script (<a
href="https://redirect.github.com/celery/billiard/issues/470">#470</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/celery/billiard/compare/v4.3.1...v4.3.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `kombu` from 5.6.2 to 5.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/celery/kombu/releases">kombu's
releases</a>.</em></p>
<blockquote>
<h2>v5.7.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add missing reprkwargs export to utils module by <a
href="https://github.com/oliverhaas"><code>@​oliverhaas</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2436">celery/kombu#2436</a></li>
<li>Remove Python 3.9 from CI workflow by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2448">celery/kombu#2448</a></li>
<li>Update Python and OS version in Read the Docs config by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2450">celery/kombu#2450</a></li>
<li>Update redis requirement from !=4.5.5,!=5.0.2,&lt;6.5,&gt;=4.5.2 to
&gt;=4.5.2,!=4.5.5,!=5.0.2,&lt;7.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2398">celery/kombu#2398</a></li>
<li>Update Python versions in tox.ini configuration by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2449">celery/kombu#2449</a></li>
<li>Bump pymongo from 4.10.1 to 4.15.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2386">celery/kombu#2386</a></li>
<li>Bump pytest from 8.4.2 to 9.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2438">celery/kombu#2438</a></li>
<li>Bump protobuf from 6.32.1 to 6.33.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2428">celery/kombu#2428</a></li>
<li>Bump protobuf from 6.33.2 to 6.33.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2452">celery/kombu#2452</a></li>
<li>Bump grpcio from 1.75.1 to 1.76.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2397">celery/kombu#2397</a></li>
<li>Revert &quot;Bump grpcio from 1.75.1 to 1.76.0&quot; by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2454">celery/kombu#2454</a></li>
<li>Update grpcio version to 1.76.0 by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2455">celery/kombu#2455</a></li>
<li>Remove invalid Python version from workflow by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2459">celery/kombu#2459</a></li>
<li>Update pypy to 3.11 by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2328">celery/kombu#2328</a></li>
<li>Update Python versions in tox.ini by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2460">celery/kombu#2460</a></li>
<li>Add support for fair queue in SQS by <a
href="https://github.com/MartinSiby"><code>@​MartinSiby</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2342">celery/kombu#2342</a></li>
<li>Support redis queue expiration by <a
href="https://github.com/ffje"><code>@​ffje</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2251">celery/kombu#2251</a></li>
<li>Fix Logwrapped not supporting context manager protocol by <a
href="https://github.com/veeceey"><code>@​veeceey</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2461">celery/kombu#2461</a></li>
<li>Cycle through host before calling errback by <a
href="https://github.com/arnaudmorin"><code>@​arnaudmorin</code></a> in
<a
href="https://redirect.github.com/celery/kombu/pull/2331">celery/kombu#2331</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2467">celery/kombu#2467</a></li>
<li>Allow enable_exactly_once_delivery for gcpubsub by <a
href="https://github.com/tungntpham"><code>@​tungntpham</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2431">celery/kombu#2431</a></li>
<li>feat(gcpubsub): optimize topic existence check by <a
href="https://github.com/haimjether"><code>@​haimjether</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2462">celery/kombu#2462</a></li>
<li>Fix active_queues to preserve queue ordering by <a
href="https://github.com/nairb774"><code>@​nairb774</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2464">celery/kombu#2464</a></li>
<li>Fix#2418 catch os error in eventio by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2471">celery/kombu#2471</a></li>
<li>Added support for SQS fanout via AWS SNS by <a
href="https://github.com/rlaunch"><code>@​rlaunch</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2372">celery/kombu#2372</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2472">celery/kombu#2472</a></li>
<li>Use compression.zstd (PEP-784) by <a
href="https://github.com/Rogdham"><code>@​Rogdham</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2395">celery/kombu#2395</a></li>
<li>Fix/2463 add gevent concurrent error to connection error by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2473">celery/kombu#2473</a></li>
<li>Bump backports-zstd from 1.0.0 to 1.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2474">celery/kombu#2474</a></li>
<li>Revert &quot;Fix/2463 add gevent concurrent error to connection
error&quot; by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2475">celery/kombu#2475</a></li>
<li>Fix/2463 gevent concurrent error by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2478">celery/kombu#2478</a></li>
<li>Bump backports-zstd from 1.1.0 to 1.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2477">celery/kombu#2477</a></li>
<li>Bump backports-zstd from 1.2.0 to 1.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2480">celery/kombu#2480</a></li>
<li>Fix for SQS transport deadlock by <a
href="https://github.com/rlaunch"><code>@​rlaunch</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2479">celery/kombu#2479</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2483">celery/kombu#2483</a></li>
<li>ChannelPromise: ensure the AttributeError does not appear in the
traceback when the contract raises an exception by <a
href="https://github.com/woutdenolf"><code>@​woutdenolf</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2486">celery/kombu#2486</a></li>
<li>Fix RabbitMQ 4.x crash: global QoS not supported on classic queues
by <a href="https://github.com/Azd325"><code>@​Azd325</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2481">celery/kombu#2481</a></li>
<li>Fix: SQS <code>polling_interval</code> transport option ignored in
async event loop <a
href="https://redirect.github.com/celery/kombu/issues/2439">#2439</a> by
<a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2489">celery/kombu#2489</a></li>
<li>Bump protobuf from 6.33.5 to 6.33.6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2494">celery/kombu#2494</a></li>
<li>Bump pytest-cov from 7.0.0 to 7.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2496">celery/kombu#2496</a></li>
<li>Support callable passwords for credential refresh on reconnect by <a
href="https://github.com/flamble"><code>@​flamble</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2476">celery/kombu#2476</a></li>
<li>fix(redis): prevent timer callbacks from crashing event loop on
connection error by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2498">celery/kombu#2498</a></li>
<li>Bump kazoo from 2.10.0 to 2.11.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2497">celery/kombu#2497</a></li>
<li>fix: gcpubsub transport crash when using Pub/Sub emulator by <a
href="https://github.com/NarendharManimohan"><code>@​NarendharManimohan</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2493">celery/kombu#2493</a></li>
<li>Bump pymongo from 4.15.3 to 4.16.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2453">celery/kombu#2453</a></li>
<li>Run pre-commit once, not twice by <a
href="https://github.com/cclauss"><code>@​cclauss</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2500">celery/kombu#2500</a></li>
<li>fix(redis): do not remove on_poll_start from on_tick on disconnect
by <a
href="https://github.com/antonio-mello-ai"><code>@​antonio-mello-ai</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2492">celery/kombu#2492</a></li>
<li>Bump codecov/codecov-action from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2501">celery/kombu#2501</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/celery/kombu/blob/main/Changelog.rst">kombu's
changelog</a>.</em></p>
<blockquote>
<h1>5.7.0</h1>
<p>:release-date: 03 November, 2026
:release-by: Asif Saif Uddin</p>
<p>What's Changed</p>
<pre><code>- fix(redis): keep an unacked message when its restore hits a
connection error ([#2767](celery/kombu#2767)).
- fix(sqs): avoid KeyError when a receive completes after basic_cancel
([#2772](celery/kombu#2772)).
- fix(redis): pause pending BRPOP polling while QoS is full
([#2776](celery/kombu#2776)).
- fix(asynchronous): close the HTTP client with the hub, and not reuse
it after Hub.reset()
([#2782](celery/kombu#2782)).
- fix(sqs): delete a message rejected without requeue
([#2784](celery/kombu#2784)).
- fix(sqlalchemy): raise when a published message cannot be stored
([#2793](celery/kombu#2793)).
- Update tzdata version constraint for Windows platform
([#2808](celery/kombu#2808)).
- fix(common): publish(retry=True) fails after a reconnect with a named
exchange ([#2797](celery/kombu#2797)).
- Update amqp version to 5.4.2
([#2810](celery/kombu#2810)).
- fix(sqlalchemy): raise when a purge cannot be committed
([#2811](celery/kombu#2811)).
<p>.. _version-5.7.0rc1:</p>
<h1>5.7.0rc1</h1>
<p>:release-date: 18 October, 2026
:release-by: Asif Saif Uddin</p>
<p>What's Changed
</code></pre></p>
<h2>Redis</h2>
<ul>
<li>Forward <code>disconnect()</code> keyword arguments and discard
closed idle
<code>BRPOP</code> connections (<a
href="https://redirect.github.com/celery/kombu/issues/2761">#2761</a>)</li>
<li>Discard <code>BRPOP</code> connections whose replies are overdue (<a
href="https://redirect.github.com/celery/kombu/issues/2757">#2757</a>)</li>
<li>Expire binding tables for expiring queues (<a
href="https://redirect.github.com/celery/kombu/issues/2732">#2732</a>)</li>
</ul>
<h2>SQLAlchemy</h2>
<ul>
<li>Use <code>BIGINT</code> IDs on MSSQL to prevent sequence overflow
(<a
href="https://redirect.github.com/celery/kombu/issues/2728">#2728</a>)</li>
<li>Count only pending messages when purging a queue (<a
href="https://redirect.github.com/celery/kombu/issues/2733">#2733</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li>Fix binary emergency state dumps (<a
href="https://redirect.github.com/celery/kombu/issues/2659">#2659</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/celery/kombu/commit/703e96f22fb7a9c8da9a560b8b01f8766e654265"><code>703e96f</code></a>
Bump version: 5.7.0rc1 → 5.7.0</li>
<li><a
href="https://github.com/celery/kombu/commit/d700961a600215f4971faef59f3c70c122f9098e"><code>d700961</code></a>
updated security supported version</li>
<li><a
href="https://github.com/celery/kombu/commit/a5d882d3a219dcab7791549517fcaa2ef4603d85"><code>a5d882d</code></a>
added changelog for v5.7.0 stable release</li>
<li><a
href="https://github.com/celery/kombu/commit/d6a185554b685701fe0c8e6a5fef0b2270ce04c3"><code>d6a1855</code></a>
chore(deps): Bump grpcio from 1.84.1 to 1.85.1</li>
<li><a
href="https://github.com/celery/kombu/commit/1c8beafb10678547a5cf67798c29c821666c4386"><code>1c8beaf</code></a>
fix(sqlalchemy): raise when a purge cannot be committed (<a
href="https://redirect.github.com/celery/kombu/issues/2811">#2811</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/ed1366ddb455269e79846a528a9fedfbe163a56d"><code>ed1366d</code></a>
Update amqp version to 5.4.2 (<a
href="https://redirect.github.com/celery/kombu/issues/2810">#2810</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/8c540f638fd2f2e5e395b76e08f9ee0fbdb0c91e"><code>8c540f6</code></a>
chore(deps): Bump azure-identity from 1.26.0 to 1.27.0 (<a
href="https://redirect.github.com/celery/kombu/issues/2809">#2809</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/da41469428594d1daf3ebc7421193fd60cdf2856"><code>da41469</code></a>
fix(common): publish(retry=True) fails after a reconnect with a named
exchang...</li>
<li><a
href="https://github.com/celery/kombu/commit/9e6277a706dfe8d710bab6ce250034c1fa4cd166"><code>9e6277a</code></a>
Update tzdata version constraint for Windows platform (<a
href="https://redirect.github.com/celery/kombu/issues/2808">#2808</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/b1905179e8921168713fedd9386c6f0f9a441e7f"><code>b190517</code></a>
fix(sqlalchemy): raise when a published message cannot be stored (<a
href="https://redirect.github.com/celery/kombu/issues/2793">#2793</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/celery/kombu/compare/v5.6.2...v5.7.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `openai` from 3.41.0 to 3.46.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/releases">openai's
releases</a>.</em></p>
<blockquote>
<h2>v3.46.0</h2>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.45.0...v3.46.0">3.46.0</a>
(2026-11-05)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add Australia, India, and Japan residency
options (<a
href="https://redirect.github.com/openai/openai-python/issues/4246">#4246</a>)
(<a
href="https://github.com/openai/openai-python/commit/2634b87c2f3d31960936cb0653e662356cd138a2">2634b87</a>)</li>
<li><strong>api:</strong> add GPT-6 Rosalind to the model catalog (<a
href="https://redirect.github.com/openai/openai-python/issues/4243">#4243</a>)
(<a
href="https://github.com/openai/openai-python/commit/0f8e5f382861120809b1d149a18c744f725746a0">0f8e5f3</a>)</li>
<li><strong>api:</strong> add image complexity and GIF and SVG output
controls (<a
href="https://redirect.github.com/openai/openai-python/issues/4247">#4247</a>)
(<a
href="https://github.com/openai/openai-python/commit/0152e3ada40e7580921aec71de2770ff02e69b05">0152e3a</a>)</li>
<li><strong>api:</strong> expand agent turn errors and image and audio
options (<a
href="https://redirect.github.com/openai/openai-python/issues/4245">#4245</a>)
(<a
href="https://github.com/openai/openai-python/commit/1b2fb74d1ac88eca798a00d3e5c0789ab9e42833">1b2fb74</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>deps:</strong> bump github/codeql-action/init from 4.39.0 to
4.39.1 (<a
href="https://redirect.github.com/openai/openai-python/issues/4230">#4230</a>)
(<a
href="https://github.com/openai/openai-python/commit/c9fe3355fd43084df817543d0d7bd5bc72065c0f">c9fe335</a>)</li>
</ul>
<h2>v3.45.0</h2>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.44.0...v3.45.0">3.45.0</a>
(2026-11-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add 12-hour Responses caching and cache-write
usage (<a
href="https://redirect.github.com/openai/openai-python/issues/4240">#4240</a>)
(<a
href="https://github.com/openai/openai-python/commit/5f717b537b7c230e2a38d0cebb0d5ccc8f97d00b">5f717b5</a>)</li>
<li><strong>api:</strong> add project service tier settings (<a
href="https://redirect.github.com/openai/openai-python/issues/4239">#4239</a>)
(<a
href="https://github.com/openai/openai-python/commit/1a2a3d02247f9eaf0614bae9d35c60cbddf1d460">1a2a3d0</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>clarify generated-file ownership (<a
href="https://redirect.github.com/openai/openai-python/issues/4241">#4241</a>)
(<a
href="https://github.com/openai/openai-python/commit/0309a8c10cb0ddda39b40592455e76847b78cf64">0309a8c</a>)</li>
</ul>
<h2>v3.44.0</h2>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.43.0...v3.44.0">3.44.0</a>
(2026-11-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add workload identity providers and federation
rules (<a
href="https://redirect.github.com/openai/openai-python/issues/4237">#4237</a>)
(<a
href="https://github.com/openai/openai-python/commit/12709d708ad03291d8a81371a55a4dadfbcce31d">12709d7</a>)</li>
</ul>
<h2>v3.43.0</h2>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.42.1...v3.43.0">3.43.0</a>
(2026-11-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> expand Live Responses delegation tools (<a
href="https://redirect.github.com/openai/openai-python/issues/4233">#4233</a>)
(<a
href="https://github.com/openai/openai-python/commit/f6e8480f9a5b2a4d02b17a1da54a1e57964bc312">f6e8480</a>)</li>
<li><strong>responses:</strong> accumulate rich WebSocket progress (<a
href="https://redirect.github.com/openai/openai-python/issues/4224">#4224</a>)
(<a
href="https://github.com/openai/openai-python/commit/48cdad3a61321cf9a27834b818c6d1fcfe651138">48cdad3</a>)</li>
<li><strong>responses:</strong> add WebSocket lane overflow isolation
(<a
href="https://redirect.github.com/openai/openai-python/issues/4225">#4225</a>)
(<a
href="https://github.com/openai/openai-python/commit/16bdad17364b62254e14f52f834d15cf1036a024">16bdad1</a>)</li>
</ul>
<h3>Chores</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/blob/main/CHANGELOG.md">openai's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.45.0...v3.46.0">3.46.0</a>
(2026-11-05)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add Australia, India, and Japan residency
options (<a
href="https://redirect.github.com/openai/openai-python/issues/4246">#4246</a>)
(<a
href="https://github.com/openai/openai-python/commit/2634b87c2f3d31960936cb0653e662356cd138a2">2634b87</a>)</li>
<li><strong>api:</strong> add GPT-6 Rosalind to the model catalog (<a
href="https://redirect.github.com/openai/openai-python/issues/4243">#4243</a>)
(<a
href="https://github.com/openai/openai-python/commit/0f8e5f382861120809b1d149a18c744f725746a0">0f8e5f3</a>)</li>
<li><strong>api:</strong> add image complexity and GIF and SVG output
controls (<a
href="https://redirect.github.com/openai/openai-python/issues/4247">#4247</a>)
(<a
href="https://github.com/openai/openai-python/commit/0152e3ada40e7580921aec71de2770ff02e69b05">0152e3a</a>)</li>
<li><strong>api:</strong> expand agent turn errors and image and audio
options (<a
href="https://redirect.github.com/openai/openai-python/issues/4245">#4245</a>)
(<a
href="https://github.com/openai/openai-python/commit/1b2fb74d1ac88eca798a00d3e5c0789ab9e42833">1b2fb74</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>deps:</strong> bump github/codeql-action/init from 4.39.0 to
4.39.1 (<a
href="https://redirect.github.com/openai/openai-python/issues/4230">#4230</a>)
(<a
href="https://github.com/openai/openai-python/commit/c9fe3355fd43084df817543d0d7bd5bc72065c0f">c9fe335</a>)</li>
</ul>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.44.0...v3.45.0">3.45.0</a>
(2026-11-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add 12-hour Responses caching and cache-write
usage (<a
href="https://redirect.github.com/openai/openai-python/issues/4240">#4240</a>)
(<a
href="https://github.com/openai/openai-python/commit/5f717b537b7c230e2a38d0cebb0d5ccc8f97d00b">5f717b5</a>)</li>
<li><strong>api:</strong> add project service tier settings (<a
href="https://redirect.github.com/openai/openai-python/issues/4239">#4239</a>)
(<a
href="https://github.com/openai/openai-python/commit/1a2a3d02247f9eaf0614bae9d35c60cbddf1d460">1a2a3d0</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>clarify generated-file ownership (<a
href="https://redirect.github.com/openai/openai-python/issues/4241">#4241</a>)
(<a
href="https://github.com/openai/openai-python/commit/0309a8c10cb0ddda39b40592455e76847b78cf64">0309a8c</a>)</li>
</ul>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.43.0...v3.44.0">3.44.0</a>
(2026-11-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> add workload identity providers and federation
rules (<a
href="https://redirect.github.com/openai/openai-python/issues/4237">#4237</a>)
(<a
href="https://github.com/openai/openai-python/commit/12709d708ad03291d8a81371a55a4dadfbcce31d">12709d7</a>)</li>
</ul>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.42.1...v3.43.0">3.43.0</a>
(2026-11-03)</h2>
<h3>Features</h3>
<ul>
<li><strong>api:</strong> expand Live Responses delegation tools (<a
href="https://redirect.github.com/openai/openai-python/issues/4233">#4233</a>)
(<a
href="https://github.com/openai/openai-python/commit/f6e8480f9a5b2a4d02b17a1da54a1e57964bc312">f6e8480</a>)</li>
<li><strong>responses:</strong> accumulate rich WebSocket progress (<a
href="https://redirect.github.com/openai/openai-python/issues/4224">#4224</a>)
(<a
href="https://github.com/openai/openai-python/commit/48cdad3a61321cf9a27834b818c6d1fcfe651138">48cdad3</a>)</li>
<li><strong>responses:</strong> add WebSocket lane overflow isolation
(<a
href="https://redirect.github.com/openai/openai-python/issues/4225">#4225</a>)
(<a
href="https://github.com/openai/openai-python/commit/16bdad17364b62254e14f52f834d15cf1036a024">16bdad1</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>deps:</strong> bump actions/setup-node from 4.4.0 to 7.1.0
(<a
href="https://redirect.github.com/openai/openai-python/issues/4229">#4229</a>)
(<a
href="https://github.com/openai/openai-python/commit/abbfb27aec2a660569d0570263d622877af64087">abbfb27</a>)</li>
<li><strong>deps:</strong> bump actions/setup-python from 7.0.0 to 7.1.0
(<a
href="https://redirect.github.com/openai/openai-python/issues/4232">#4232</a>)
(<a
href="https://github.com/openai/openai-python/commit/49f9a596ead681644a76a54992fc10e9b87a95b0">49f9a59</a>)</li>
<li><strong>deps:</strong> bump pypa/gh-action-pypi-publish from 1.14.2
to 1.14.3 (<a
href="https://redirect.github.com/openai/openai-python/issues/4228">#4228</a>)
(<a
href="https://github.com/openai/openai-python/commit/f43f29b5f7db37579becc2dad83f5054ef59ed6f">f43f29b</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/openai/openai-python/commit/ea5d1606f441d80dca1e9e7f99b74581f41408f8"><code>ea5d160</code></a>
release: 3.46.0 (<a
href="https://redirect.github.com/openai/openai-python/issues/4244">#4244</a>)</li>
<li><a
href="https://github.com/openai/openai-python/commit/0152e3ada40e7580921aec71de2770ff02e69b05"><code>0152e3a</code></a>
feat(api): add image complexity and GIF and SVG output controls (<a
href="https://redirect.github.com/openai/openai-python/issues/4247">#4247</a>)</li>
<li><a
href="https://github.com/openai/openai-python/commit/2634b87c2f3d31960936cb0653e662356cd138a2"><code>2634b87</code></a>
feat(api): add Australia, India, and Japan residency options (<a
href="https://redirect.github.com/openai/openai-python/issues/4246">#4246</a>)</li>
<li><a
href="https://github.com/openai/openai-python/commit/b4aee4c1d5527a3d0d77940f35f6f79b2a272e70"><code>b4aee4c</code></a>
chore(deps): bump the python-maintenance group across 1 directory with
11 upd...</li>
<li><a
href="https://github.com/openai/openai-python/commit/c9fe3355fd43084df817543d0d7bd5bc72065c0f"><code>c9fe335</code></a>
chore(deps): bump github/codeql-action/init from 4.39.0 to 4.39.1 (<a
href="https://redirect.github.com/openai/openai-python/issues/4230">#4230</a>)</li>
<li><a
href="https://github.com/openai/openai-python/commit/d59f414417b977ef20d7a78f398b153dac32216e"><code>d59f414</code></a>
chore(deps): update aiohttp, multidict, PyJWT, and required yarl
security flo...</li>
<li><a
href="https://github.com/openai/openai-python/commit/1b2fb74d1ac88eca798a00d3e5c0789ab9e42833"><code>1b2fb74</code></a>
feat(api): expand agent turn errors and image and audio options (<a
href="https://redirect.github.com/openai/openai-python/issues/4245">#4245</a>)</li>
<li><a
href="https://github.com/openai/openai-python/commit/0f8e5f382861120809b1d149a18c744f725746a0"><code>0f8e5f3</code></a>
feat(api): add GPT-6 Rosalind to the model catalog (<a
href="https://redirect.github.com/openai/openai-python/issues/4243">#4243</a>)</li>
<li><a
href="https://github.com/openai/openai-python/commit/9b3458a2ef563493111a0a4265d4e9e7e14fe840"><code>9b3458a</code></a>
release: 3.45.0 (<a
href="https://redirect.github.com/openai/openai-python/issues/4242">#4242</a>)</li>
<li><a
href="https://github.com/openai/openai-python/commit/0309a8c10cb0ddda39b40592455e76847b78cf64"><code>0309a8c</code></a>
docs: clarify generated-file ownership (<a
href="https://redirect.github.com/openai/openai-python/issues/4241">#4241</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/openai/openai-python/compare/v3.41.0...v3.46.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>
Siddharthk17 added a commit to Siddharthk17/PipelineIQ that referenced this pull request Nov 10, 2026
…dates (#40)

Bumps the celery-stack group with 2 updates in the /backend directory:
[celery](https://github.com/celery/celery) and
[kombu](https://github.com/celery/kombu).

Updates `celery` from 5.6.3 to 5.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/celery/celery/releases">celery's
releases</a>.</em></p>
<blockquote>
<h2>v5.7.0</h2>
<h1>Celery 5.7.0</h1>
<p>We're pleased to announce <strong>Celery 5.7.0</strong>, a new stable
release of Celery.</p>
<p>This release brings substantial improvements to task workflows,
worker reliability, result handling, scheduling, and broker
connectivity. It also includes new integrations, improved Python
compatibility, performance optimizations, and a large number of bug
fixes contributed by the community.</p>
<p>A significant part of this release focuses on making complex Canvas
workflows more reliable and efficient, improving worker behavior during
broker disconnections and shutdown, and making result-backend state
handling more consistent.</p>
<h2>Highlights</h2>
<ul>
<li><strong>More reliable Canvas workflows:</strong> Improved chains,
groups, chords, nested workflows, callbacks, errbacks, and failure
propagation. Several fixes also reduce unnecessary message growth in
complex chains and chords.</li>
<li><strong>Improved worker reliability:</strong> Better connection
recovery, graceful shutdown, prefork process management, autoscaling,
and handling of worker-process loss.</li>
<li><strong>More predictable task results:</strong> Improved
result-state consistency, retry handling, <code>ignore_result</code>
behavior, and concurrent <code>AsyncResult</code> tracking.</li>
<li><strong>Timezone and scheduling improvements:</strong> More reliable
ETA, countdown, expiration, crontab, solar schedules, and Celery Beat
behavior across daylight-saving-time transitions.</li>
<li><strong>New Pydantic integration behavior:</strong> Tasks configured
with <code>pydantic=True</code> can accept Pydantic model
instances.</li>
<li><strong>New pymemcache result backend support:</strong> Adds support
for using <code>pymemcache</code> as a result backend.</li>
<li><strong>Improved Redis result backend:</strong> New expiration
settings for chord and failure results, improved Pub/Sub handling, and
more reliable chord accounting.</li>
<li><strong>Better Python compatibility:</strong> Python 3.10 is now the
minimum supported version, with compatibility work for newer Python
versions, including Python 3.14.</li>
<li><strong>Improved worker operations:</strong> Cgroup-aware automatic
concurrency detection and additional worker-management
improvements.</li>
</ul>
<h2>What's New</h2>
<h3>Canvas, Chains, Groups, and Chords</h3>
<p>Celery 5.7 includes extensive improvements to Canvas execution and
composition, particularly for nested workflows and complex chains and
chords.</p>
<ul>
<li>Fixed failure propagation through chained tasks into chord
bodies.</li>
<li>Improved chord failure handling when a chord header or a chained
chord fails.</li>
<li>Fixed chord error handling when the chord body is itself a
chain.</li>
<li>Improved handling of empty groups and chains, including empty groups
inside chains and group headers.</li>
<li>Chains are now constructed in a single pass instead of repeatedly
folding signatures with the <code>|</code> operator.</li>
<li>Reduced unnecessary message growth in chains of chords, chains of
groups, implicit chords, and standalone chord bodies.</li>
<li>Improved nested group handling and preservation of group IDs.</li>
<li>Fixed duplicate nodes in <code>GroupResult.as_tuple()</code> after
groups in chains.</li>
<li>Improved <code>GroupResult</code> fan-out behavior in chains.</li>
<li>Fixed eager execution behavior for chains containing
<code>Ignore</code> or <code>Reject</code>.</li>
<li>Avoided unnecessary result-backend access when eagerly applying
groups inside chains.</li>
<li>Improved task replacement with chains containing groups, including
cases that previously could hang.</li>
<li>Improved callback execution when a task is replaced by a chain,
ensuring callbacks are not invoked repeatedly.</li>
<li>Fixed eager-chain callback behavior so that chain links are
dispatched once at the appropriate point.</li>
<li>Improved propagation of task options, ETA, and countdown values to
chord headers.</li>
<li>Corrected the handling of <code>link</code> and
<code>link_error</code> options on chords so they are applied to the
chord body.</li>
<li>Improved errback argument classification and handling of new-style
errback calls.</li>
<li>Preserved group errback mutability and improved stamped-header
merging and revocation.</li>
<li>Improved signature cloning and option isolation, preventing cloned
signatures from sharing mutable keyword arguments with their
originals.</li>
<li>Fixed argument forwarding through nested chains during eager
execution.</li>
<li>Improved <code>map</code> and <code>starmap</code> option
merging.</li>
</ul>
<p>These changes make complex Canvas compositions more predictable and
reduce unnecessary broker traffic and message growth.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/celery/celery/blob/main/Changelog.rst">celery's
changelog</a>.</em></p>
<blockquote>
<h1>5.7.0</h1>
<p>:release-date: 2026-11-05
:release-by: Asif Saif Uddin</p>
<p>Celery v5.7.0 Stable Release is now available for testing and deploy
to production.
Please help us test this version and report any issues.</p>
<h1>What's Changed Since 5.7.0rc1</h1>
<p>This section summarizes the changes made since the Celery 5.7.0rc1
pre-release.</p>
<h2>Canvas, Chains, Groups, and Chords</h2>
<ul>
<li>Run a replaced task's callbacks once when it is replaced with a
chain (<code>:ghpull:</code>10927`).</li>
<li>Fix chord link and link-error options so they are passed to the body
only (<code>:ghpull:</code>10778`).</li>
<li>Fix stamped header revocation (<code>:ghpull:</code>10884`).</li>
<li>Count each chord header task only once in the Redis backend
(<code>:ghpull:</code>10919`).</li>
<li>Fix Redis chord claim cleanup ownership
(<code>:ghpull:</code>10998`).</li>
<li>Fail the chord when <code>chord_unlock</code> retry is refused by
the broker (<code>:ghpull:</code>10959`).</li>
</ul>
<h2>Task Execution and Result Handling</h2>
<ul>
<li>Fix retry argument conflicts when switching calling conventions
(<code>:ghpull:</code>10895`).</li>
<li>Pass values to backend hooks by position again
(<code>:ghpull:</code>10918`).</li>
<li>Don't mark a task <code>REVOKED</code> while another worker is
running it (<code>:ghpull:</code>10922`).</li>
<li>Keep the first <code>SUCCESS</code> in the database, MongoDB, and
Cassandra backends (<code>:ghpull:</code>10920<code>,
:ghpull:</code>10944<code>, :ghpull:</code>10945`).</li>
<li>Don't record <code>FAILURE</code> when <code>on_success</code>
raises after <code>SUCCESS</code> was stored
(<code>:ghpull:</code>10759`).</li>
<li>Don't fail a task whose <code>SUCCESS</code> was stored before the
worker was lost (<code>:ghpull:</code>10752`).</li>
<li>Fix a worker hang in <code>WorkerLostError</code> when
<code>result_backend_always_retry=True</code>
(<code>:ghpull:</code>10960`).</li>
<li>Fix <code>send_task()</code> overriding <code>ignore_result</code>
defaults (<code>:ghpull:</code>10953`).</li>
<li>Preserve <code>ignore_result</code> overrides across task retries
(<code>:ghpull:</code>10958`).</li>
<li>Make <code>Task.apply()</code> respect the
<code>task.ignore_result</code> default
(<code>:ghpull:</code>11001`).</li>
<li>Don't store <code>RETRY</code> for an ignored result when retrying
after a lost worker (<code>:ghpull:</code>11009`).</li>
<li>Track every <code>AsyncResult</code> waiting on a task ID
(<code>:ghpull:</code>10956`).</li>
<li>Allow <code>ResultSet.add()</code> after the set's results are ready
(<code>:ghpull:</code>10930`).</li>
<li>Use the documented retry defaults in the database backend
(<code>:ghpull:</code>10921`).</li>
<li>Fix Manager warning output during retries
(<code>:ghpull:</code>10948`).</li>
<li>Wait between retries when the broker refuses a callback publish
(<code>:ghpull:</code>10975`).</li>
<li>Merge signature options in <code>map</code> and <code>starmap</code>
<code>apply_async()</code> (<code>:ghpull:</code>10787`).</li>
<li>Stop gating task publishing signals on cached receiver lists
(<code>:ghpull:</code>10791`).</li>
</ul>
<h2>Worker Operations</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/celery/celery/commit/6fcdbf904d410749ad7676d8ff6b1b25d6e19675"><code>6fcdbf9</code></a>
Bump version: 5.7.0rc1 → 5.7.0 (<a
href="https://redirect.github.com/celery/celery/issues/11025">#11025</a>)</li>
<li><a
href="https://github.com/celery/celery/commit/4a1d6f42ff6e220050875dd83367815fa33f4c59"><code>4a1d6f4</code></a>
Make beat's pidbox stop test tolerate slow runners (<a
href="https://redirect.github.com/celery/celery/issues/11024">#11024</a>)</li>
<li><a
href="https://github.com/celery/celery/commit/6a80d471983d40fa65c78baf006885062b546132"><code>6a80d47</code></a>
Added changelog and new features for celery v5.7.0 stable version (<a
href="https://redirect.github.com/celery/celery/issues/11016">#11016</a>)</li>
<li><a
href="https://github.com/celery/celery/commit/6b67b23b0b784d62809152b5ac2f7acf7def8297"><code>6b67b23</code></a>
Fix dead Akismet and vine zipball links in the docs (<a
href="https://redirect.github.com/celery/celery/issues/11021">#11021</a>)</li>
<li><a
href="https://github.com/celery/celery/commit/e82fa93f539bc2eb0237417382fad02f42452532"><code>e82fa93</code></a>
Chore(deps): Bump azure-identity from 1.26.0 to 1.27.0</li>
<li><a
href="https://github.com/celery/celery/commit/2fe0ead077408eae9c1ff883b9d995792fbc0170"><code>2fe0ead</code></a>
Chore(deps): Bump google-cloud-storage from 3.15.0 to 3.17.1 (<a
href="https://redirect.github.com/celery/celery/issues/11013">#11013</a>)</li>
<li><a
href="https://github.com/celery/celery/commit/89ce90041834e0624aed7623f098dc59ef91c7a5"><code>89ce900</code></a>
Fix#10997 - redis chord claim cleanup ownership (<a
href="https://redirect.github.com/celery/celery/issues/10998">#10998</a>)</li>
<li><a
href="https://github.com/celery/celery/commit/5d83c46ebb3f7183998f55fa2e5af0ad0038b278"><code>5d83c46</code></a>
Don't store RETRY for an ignored result when retrying after a lost
worker (<a
href="https://redirect.github.com/celery/celery/issues/1">#1</a>...</li>
<li><a
href="https://github.com/celery/celery/commit/1f435e5c718c8485143910d67b40eb164fd9f567"><code>1f435e5</code></a>
Use Cuba's 2025 fall-back in the midnight DST tests</li>
<li><a
href="https://github.com/celery/celery/commit/98b7ba94a17239ff4c44ed59a10a1b09a68f81db"><code>98b7ba9</code></a>
Update kombu version to 5.7.0 (<a
href="https://redirect.github.com/celery/celery/issues/11007">#11007</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/celery/celery/compare/v5.6.3...v5.7.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `kombu` from 5.6.2 to 5.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/celery/kombu/releases">kombu's
releases</a>.</em></p>
<blockquote>
<h2>v5.7.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Add missing reprkwargs export to utils module by <a
href="https://github.com/oliverhaas"><code>@​oliverhaas</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2436">celery/kombu#2436</a></li>
<li>Remove Python 3.9 from CI workflow by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2448">celery/kombu#2448</a></li>
<li>Update Python and OS version in Read the Docs config by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2450">celery/kombu#2450</a></li>
<li>Update redis requirement from !=4.5.5,!=5.0.2,&lt;6.5,&gt;=4.5.2 to
&gt;=4.5.2,!=4.5.5,!=5.0.2,&lt;7.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2398">celery/kombu#2398</a></li>
<li>Update Python versions in tox.ini configuration by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2449">celery/kombu#2449</a></li>
<li>Bump pymongo from 4.10.1 to 4.15.3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2386">celery/kombu#2386</a></li>
<li>Bump pytest from 8.4.2 to 9.0.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2438">celery/kombu#2438</a></li>
<li>Bump protobuf from 6.32.1 to 6.33.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2428">celery/kombu#2428</a></li>
<li>Bump protobuf from 6.33.2 to 6.33.5 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2452">celery/kombu#2452</a></li>
<li>Bump grpcio from 1.75.1 to 1.76.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2397">celery/kombu#2397</a></li>
<li>Revert &quot;Bump grpcio from 1.75.1 to 1.76.0&quot; by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2454">celery/kombu#2454</a></li>
<li>Update grpcio version to 1.76.0 by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2455">celery/kombu#2455</a></li>
<li>Remove invalid Python version from workflow by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2459">celery/kombu#2459</a></li>
<li>Update pypy to 3.11 by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2328">celery/kombu#2328</a></li>
<li>Update Python versions in tox.ini by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2460">celery/kombu#2460</a></li>
<li>Add support for fair queue in SQS by <a
href="https://github.com/MartinSiby"><code>@​MartinSiby</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2342">celery/kombu#2342</a></li>
<li>Support redis queue expiration by <a
href="https://github.com/ffje"><code>@​ffje</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2251">celery/kombu#2251</a></li>
<li>Fix Logwrapped not supporting context manager protocol by <a
href="https://github.com/veeceey"><code>@​veeceey</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2461">celery/kombu#2461</a></li>
<li>Cycle through host before calling errback by <a
href="https://github.com/arnaudmorin"><code>@​arnaudmorin</code></a> in
<a
href="https://redirect.github.com/celery/kombu/pull/2331">celery/kombu#2331</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2467">celery/kombu#2467</a></li>
<li>Allow enable_exactly_once_delivery for gcpubsub by <a
href="https://github.com/tungntpham"><code>@​tungntpham</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2431">celery/kombu#2431</a></li>
<li>feat(gcpubsub): optimize topic existence check by <a
href="https://github.com/haimjether"><code>@​haimjether</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2462">celery/kombu#2462</a></li>
<li>Fix active_queues to preserve queue ordering by <a
href="https://github.com/nairb774"><code>@​nairb774</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2464">celery/kombu#2464</a></li>
<li>Fix#2418 catch os error in eventio by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2471">celery/kombu#2471</a></li>
<li>Added support for SQS fanout via AWS SNS by <a
href="https://github.com/rlaunch"><code>@​rlaunch</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2372">celery/kombu#2372</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2472">celery/kombu#2472</a></li>
<li>Use compression.zstd (PEP-784) by <a
href="https://github.com/Rogdham"><code>@​Rogdham</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2395">celery/kombu#2395</a></li>
<li>Fix/2463 add gevent concurrent error to connection error by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2473">celery/kombu#2473</a></li>
<li>Bump backports-zstd from 1.0.0 to 1.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2474">celery/kombu#2474</a></li>
<li>Revert &quot;Fix/2463 add gevent concurrent error to connection
error&quot; by <a
href="https://github.com/auvipy"><code>@​auvipy</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2475">celery/kombu#2475</a></li>
<li>Fix/2463 gevent concurrent error by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2478">celery/kombu#2478</a></li>
<li>Bump backports-zstd from 1.1.0 to 1.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2477">celery/kombu#2477</a></li>
<li>Bump backports-zstd from 1.2.0 to 1.3.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2480">celery/kombu#2480</a></li>
<li>Fix for SQS transport deadlock by <a
href="https://github.com/rlaunch"><code>@​rlaunch</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2479">celery/kombu#2479</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a
href="https://github.com/pre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2483">celery/kombu#2483</a></li>
<li>ChannelPromise: ensure the AttributeError does not appear in the
traceback when the contract raises an exception by <a
href="https://github.com/woutdenolf"><code>@​woutdenolf</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2486">celery/kombu#2486</a></li>
<li>Fix RabbitMQ 4.x crash: global QoS not supported on classic queues
by <a href="https://github.com/Azd325"><code>@​Azd325</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2481">celery/kombu#2481</a></li>
<li>Fix: SQS <code>polling_interval</code> transport option ignored in
async event loop <a
href="https://redirect.github.com/celery/kombu/issues/2439">#2439</a> by
<a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2489">celery/kombu#2489</a></li>
<li>Bump protobuf from 6.33.5 to 6.33.6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2494">celery/kombu#2494</a></li>
<li>Bump pytest-cov from 7.0.0 to 7.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2496">celery/kombu#2496</a></li>
<li>Support callable passwords for credential refresh on reconnect by <a
href="https://github.com/flamble"><code>@​flamble</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2476">celery/kombu#2476</a></li>
<li>fix(redis): prevent timer callbacks from crashing event loop on
connection error by <a
href="https://github.com/ChickenBenny"><code>@​ChickenBenny</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2498">celery/kombu#2498</a></li>
<li>Bump kazoo from 2.10.0 to 2.11.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2497">celery/kombu#2497</a></li>
<li>fix: gcpubsub transport crash when using Pub/Sub emulator by <a
href="https://github.com/NarendharManimohan"><code>@​NarendharManimohan</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2493">celery/kombu#2493</a></li>
<li>Bump pymongo from 4.15.3 to 4.16.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2453">celery/kombu#2453</a></li>
<li>Run pre-commit once, not twice by <a
href="https://github.com/cclauss"><code>@​cclauss</code></a> in <a
href="https://redirect.github.com/celery/kombu/pull/2500">celery/kombu#2500</a></li>
<li>fix(redis): do not remove on_poll_start from on_tick on disconnect
by <a
href="https://github.com/antonio-mello-ai"><code>@​antonio-mello-ai</code></a>
in <a
href="https://redirect.github.com/celery/kombu/pull/2492">celery/kombu#2492</a></li>
<li>Bump codecov/codecov-action from 5 to 6 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/celery/kombu/pull/2501">celery/kombu#2501</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/celery/kombu/blob/main/Changelog.rst">kombu's
changelog</a>.</em></p>
<blockquote>
<h1>5.7.0</h1>
<p>:release-date: 03 November, 2026
:release-by: Asif Saif Uddin</p>
<p>What's Changed</p>
<pre><code>- fix(redis): keep an unacked message when its restore hits a
connection error ([#2767](celery/kombu#2767)).
- fix(sqs): avoid KeyError when a receive completes after basic_cancel
([#2772](celery/kombu#2772)).
- fix(redis): pause pending BRPOP polling while QoS is full
([#2776](celery/kombu#2776)).
- fix(asynchronous): close the HTTP client with the hub, and not reuse
it after Hub.reset()
([#2782](celery/kombu#2782)).
- fix(sqs): delete a message rejected without requeue
([#2784](celery/kombu#2784)).
- fix(sqlalchemy): raise when a published message cannot be stored
([#2793](celery/kombu#2793)).
- Update tzdata version constraint for Windows platform
([#2808](celery/kombu#2808)).
- fix(common): publish(retry=True) fails after a reconnect with a named
exchange ([#2797](celery/kombu#2797)).
- Update amqp version to 5.4.2
([#2810](celery/kombu#2810)).
- fix(sqlalchemy): raise when a purge cannot be committed
([#2811](celery/kombu#2811)).
<p>.. _version-5.7.0rc1:</p>
<h1>5.7.0rc1</h1>
<p>:release-date: 18 October, 2026
:release-by: Asif Saif Uddin</p>
<p>What's Changed
</code></pre></p>
<h2>Redis</h2>
<ul>
<li>Forward <code>disconnect()</code> keyword arguments and discard
closed idle
<code>BRPOP</code> connections (<a
href="https://redirect.github.com/celery/kombu/issues/2761">#2761</a>)</li>
<li>Discard <code>BRPOP</code> connections whose replies are overdue (<a
href="https://redirect.github.com/celery/kombu/issues/2757">#2757</a>)</li>
<li>Expire binding tables for expiring queues (<a
href="https://redirect.github.com/celery/kombu/issues/2732">#2732</a>)</li>
</ul>
<h2>SQLAlchemy</h2>
<ul>
<li>Use <code>BIGINT</code> IDs on MSSQL to prevent sequence overflow
(<a
href="https://redirect.github.com/celery/kombu/issues/2728">#2728</a>)</li>
<li>Count only pending messages when purging a queue (<a
href="https://redirect.github.com/celery/kombu/issues/2733">#2733</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li>Fix binary emergency state dumps (<a
href="https://redirect.github.com/celery/kombu/issues/2659">#2659</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/celery/kombu/commit/703e96f22fb7a9c8da9a560b8b01f8766e654265"><code>703e96f</code></a>
Bump version: 5.7.0rc1 → 5.7.0</li>
<li><a
href="https://github.com/celery/kombu/commit/d700961a600215f4971faef59f3c70c122f9098e"><code>d700961</code></a>
updated security supported version</li>
<li><a
href="https://github.com/celery/kombu/commit/a5d882d3a219dcab7791549517fcaa2ef4603d85"><code>a5d882d</code></a>
added changelog for v5.7.0 stable release</li>
<li><a
href="https://github.com/celery/kombu/commit/d6a185554b685701fe0c8e6a5fef0b2270ce04c3"><code>d6a1855</code></a>
chore(deps): Bump grpcio from 1.84.1 to 1.85.1</li>
<li><a
href="https://github.com/celery/kombu/commit/1c8beafb10678547a5cf67798c29c821666c4386"><code>1c8beaf</code></a>
fix(sqlalchemy): raise when a purge cannot be committed (<a
href="https://redirect.github.com/celery/kombu/issues/2811">#2811</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/ed1366ddb455269e79846a528a9fedfbe163a56d"><code>ed1366d</code></a>
Update amqp version to 5.4.2 (<a
href="https://redirect.github.com/celery/kombu/issues/2810">#2810</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/8c540f638fd2f2e5e395b76e08f9ee0fbdb0c91e"><code>8c540f6</code></a>
chore(deps): Bump azure-identity from 1.26.0 to 1.27.0 (<a
href="https://redirect.github.com/celery/kombu/issues/2809">#2809</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/da41469428594d1daf3ebc7421193fd60cdf2856"><code>da41469</code></a>
fix(common): publish(retry=True) fails after a reconnect with a named
exchang...</li>
<li><a
href="https://github.com/celery/kombu/commit/9e6277a706dfe8d710bab6ce250034c1fa4cd166"><code>9e6277a</code></a>
Update tzdata version constraint for Windows platform (<a
href="https://redirect.github.com/celery/kombu/issues/2808">#2808</a>)</li>
<li><a
href="https://github.com/celery/kombu/commit/b1905179e8921168713fedd9386c6f0f9a441e7f"><code>b190517</code></a>
fix(sqlalchemy): raise when a published message cannot be stored (<a
href="https://redirect.github.com/celery/kombu/issues/2793">#2793</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/celery/kombu/compare/v5.6.2...v5.7.0">compare
view</a></li>
</ul>
</details>
<br />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Celery SQS Consumer Crashes with JSONDecodeError on Invalid / Non-Celery Messages

4 participants