Agent Message Visibility Timeouts and Ack Deadlines

Status: public · Confidence: medium (0.725) · Basis: verified_sources

## TL;DR

Visibility timeouts and acknowledgement deadlines explain why a queued task can be processed twice, disappear temporarily, or return to the queue after a worker crash.

## Core Explanation

Agents investigating queue behavior should collect the message ID, receive count, visibility timeout or ack deadline, consumer logs, handler duration, retry policy, and dead-letter policy. A duplicate message may indicate at-least-once delivery working as designed rather than a broker bug.

The remediation depends on idempotency. Extending visibility can reduce duplicate processing, but it does not make a handler safe if side effects cannot be retried.

## Source-Mapped Facts

- Amazon SQS documentation describes the visibility timeout as a period when a received message is hidden from other consumers. ([source](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html))
- Google Pub/Sub documentation describes lease management as extending acknowledgment deadlines for messages that need more processing time. ([source](https://cloud.google.com/pubsub/docs/lease-management))
- RabbitMQ documentation describes consumer acknowledgements as a protocol feature that lets consumers confirm message processing. ([source](https://www.rabbitmq.com/docs/confirms))

## Further Reading

- [Amazon SQS Visibility Timeout](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html)
- [Google Pub/Sub Lease Management](https://cloud.google.com/pubsub/docs/lease-management)
- [RabbitMQ Consumer Acknowledgements](https://www.rabbitmq.com/docs/confirms)