Problem
Two schedules.task jobs have no explicit retry.maxAttempts and default to Trigger.dev's system default (3):
webhookSweeperJob (packages/jobs/src/webhook-sweeper.ts:86) — sweeps and dispatches webhooks; a transient DB error on the sweep query retries up to 3×, potentially re-selecting already-dispatched items if delivered_at update hasn't committed.
monthlyReportCron (packages/jobs/src/monthly-report.ts:249) — the cron wrapper that fans out per-org monthlyReportJob tasks; 3 retries of the wrapper could enqueue duplicate per-org jobs.
Fix
Add explicit retry config:
// webhookSweeperJob — idempotent sweep, 1 attempt is correct
retry: { maxAttempts: 1 },
// monthlyReportCron — fan-out wrapper; child jobs are idempotent, wrapper retry is safe but noisy
retry: { maxAttempts: 2 },
Severity
LOW — mitigated by per-delivery CAS guards, but explicit maxAttempts should be set on all jobs.
Problem
Two
schedules.taskjobs have no explicitretry.maxAttemptsand default to Trigger.dev's system default (3):webhookSweeperJob(packages/jobs/src/webhook-sweeper.ts:86) — sweeps and dispatches webhooks; a transient DB error on the sweep query retries up to 3×, potentially re-selecting already-dispatched items ifdelivered_atupdate hasn't committed.monthlyReportCron(packages/jobs/src/monthly-report.ts:249) — the cron wrapper that fans out per-orgmonthlyReportJobtasks; 3 retries of the wrapper could enqueue duplicate per-org jobs.Fix
Add explicit
retryconfig:Severity
LOW — mitigated by per-delivery CAS guards, but explicit maxAttempts should be set on all jobs.