Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.

Commit 04292d9

Browse files
authored
feat(aws sqs plugin): adds exception handling for ResourceClosedError errors (#5601)
1 parent e55f9a1 commit 04292d9

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/dispatch/plugins/dispatch_aws/plugin.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import boto3
1616
from psycopg2.errors import UniqueViolation
1717
from pydantic import ValidationError
18-
from sqlalchemy.exc import IntegrityError
18+
from sqlalchemy.exc import IntegrityError, ResourceClosedError
1919
from sqlalchemy.orm import Session
2020

2121
from dispatch.metrics import provider as metrics_provider
@@ -124,9 +124,15 @@ def consume(self, db_session: Session, project: Project) -> None:
124124
f"Encountered an integrity error when trying to create a signal instance: {e}"
125125
)
126126
continue
127+
except ResourceClosedError as e:
128+
log.warning(
129+
f"Encountered an error when trying to create a signal instance. The plugin will retry again as the message hasn't been deleted from the SQS queue. Signal name/variant: {signal_instance_in.raw['name'] if signal_instance_in.raw and signal_instance_in.raw['name'] else signal_instance_in.raw['variant']}. Error: {e}"
130+
)
131+
db_session.rollback()
132+
continue
127133
except Exception as e:
128134
log.exception(
129-
f"Unable to create signal instance. Signal name/variant: {signal_instance_in.raw['name'] if signal_instance_in.raw and signal_instance_in.raw['name'] else signal_instance_in.raw['variant']}. Error: {e}"
135+
f"Encountered an error when trying to create a signal instance. Signal name/variant: {signal_instance_in.raw['name'] if signal_instance_in.raw and signal_instance_in.raw['name'] else signal_instance_in.raw['variant']}. Error: {e}"
130136
)
131137
db_session.rollback()
132138
continue

0 commit comments

Comments
 (0)