diff --git a/packages/das/src/queue/fetch.processor.ts b/packages/das/src/queue/fetch.processor.ts index 27860d2..e3e442e 100644 --- a/packages/das/src/queue/fetch.processor.ts +++ b/packages/das/src/queue/fetch.processor.ts @@ -147,7 +147,9 @@ export class FetchProcessor extends WorkerHost { { jobId: `meta-${repoFullName}-${prNumber}`, removeOnComplete: true, - removeOnFail: 50, + // Match the webhook handler — failed metadata jobs must not squat + // on the stable per-PR jobId (#75). + removeOnFail: true, attempts: 3, backoff: { type: "exponential", delay: 5000 }, }, diff --git a/packages/das/src/webhook/handlers/pull-request.handler.ts b/packages/das/src/webhook/handlers/pull-request.handler.ts index bd70e83..53dbee8 100644 --- a/packages/das/src/webhook/handlers/pull-request.handler.ts +++ b/packages/das/src/webhook/handlers/pull-request.handler.ts @@ -79,9 +79,11 @@ export class PullRequestHandler { { repoFullName, prNumber }, { jobId, - // Replace any pending job for the same PR (e.g. rapid pushes) + // Pending/active jobs for the same PR still dedupe by jobId. + // Don't retain failed jobs — they'd block future enqueues for this + // PR until the failed-set cap evicts them (#75). removeOnComplete: true, - removeOnFail: 50, + removeOnFail: true, attempts: 3, backoff: { type: "exponential", delay: 5000 }, },