Skip to content

Commit 5211ba6

Browse files
committed
release concurrency slot when moving to the DLQ
1 parent 5b8ec88 commit 5211ba6

File tree

1 file changed

+14
-0
lines changed
  • packages/redis-worker/src/fair-queue

1 file changed

+14
-0
lines changed

packages/redis-worker/src/fair-queue/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,6 +1099,20 @@ export class FairQueue<TPayloadSchema extends z.ZodTypeAny = z.ZodUnknown> {
10991099
});
11001100
// Move to DLQ
11011101
await this.#moveToDeadLetterQueue(storedMessage, "Payload validation failed");
1102+
1103+
// Release reserved concurrency slot
1104+
if (this.concurrencyManager) {
1105+
try {
1106+
await this.concurrencyManager.release(descriptor, storedMessage.id);
1107+
} catch (releaseError) {
1108+
this.logger.error("Failed to release concurrency slot after payload validation failure", {
1109+
messageId: storedMessage.id,
1110+
queueId,
1111+
error: releaseError instanceof Error ? releaseError.message : String(releaseError),
1112+
});
1113+
}
1114+
}
1115+
11021116
return;
11031117
}
11041118
payload = result.data;

0 commit comments

Comments
 (0)