CeleryRabbitMQRedis

Broker visibility timeout causes duplicate task execution

warning
Connection ManagementUpdated Sep 22, 2025(via Exa)
How to detect:

Message brokers like RabbitMQ or Redis with lease or visibility timeouts can cause re-queuing or message loss. If a worker crashes before acknowledging a message, the broker might redeliver it, resulting in duplicate executions masquerading as retries.

Recommended action:

Adjust visibility timeouts to align with expected task durations. Set acks_late=True to ensure proper acknowledgment behavior. Implement idempotency safeguards like unique request identifiers to handle duplicate executions safely.