Skip to content

Error queue excluded from list queues prefix in ListQueues check #61

@andrewatwood

Description

@andrewatwood

Say I have two existing queues: a queue process-queue and an error queue error-queue.

My error queue is never flagged as existing because the ListQueues operation is prefixed to the main queue name:

queues = sqs.list_queues(QueueNamePrefix=self._queue_name)
main_queue_exists = False
error_queue_exists = False
if 'QueueUrls' in queues:
for q in queues['QueueUrls']:
qname = q.split('/')[-1]
if qname == self._queue_name:
main_queue_exists = True
if self._error_queue_name and qname == self._error_queue_name:
error_queue_exists = True

The listener attempts to create the error queue since it wasn't found, and gets a QueueAlreadyExists error immediately.

If I specify the error queue as process-queue-error and it already exists, I don't get any errors, because it comes back in the ListQueues call that uses the prefix.

A couple solutions to this but it's a pretty big issue for anyone using pre-created queues.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions