fix(webhooks): non-polling webhook executions silently dropped after worker removal#4153
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryMedium Risk Overview Removes the Reviewed by Cursor Bugbot for commit fab7627. Configure here. |
Greptile SummaryThis PR fixes a production regression introduced in #4090 where non-polling webhook executions (Slack, GitHub, Teams, WhatsApp, Zoom, etc.) were silently dropped. The root cause was that the Confidence Score: 5/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Incoming Webhook Request] --> B[parseWebhookBody]
B --> C[handleProviderChallenges]
C --> D[findWebhookAndWorkflow]
D --> E[verifyProviderAuth]
E --> F[checkWebhookPreprocessing]
F --> G{Preprocessing OK?}
G -- No --> H[Return Error Response]
G -- Yes --> I{isPollingProvider AND\nTrigger.dev enabled?}
I -- Yes --> J[getJobQueue / Trigger.dev\nenqueue webhook-execution]
J --> K[Return 200 Response]
I -- No --> L[getInlineJobQueue\nenqueue webhook-execution]
L --> M[fire-and-forget\nvoid async IIFE]
M --> N[Return 200 Response]
M --> O[jobQueue.startJob]
O --> P[executeWebhookJob]
P -- Success --> Q[jobQueue.completeJob]
P -- Error --> R[jobQueue.markJobFailed]
style I fill:#f9a825,color:#000
style M fill:#4caf50,color:#fff
style J fill:#1565c0,color:#fff
Reviews (1): Last reviewed commit: "fix(webhooks): non-polling webhook execu..." | Re-trigger Greptile |
Summary
if (!isBullMQEnabled())guard withif (shouldExecuteInline())in the webhook processor's inline execution pathshouldExecuteInline()returnsfalsewhen Trigger.dev is the async backend (which it is in production), so the fire-and-forget execution block was never runningshouldExecuteInline()guard so the inline execution always runs when jobs are enqueued to the inline database queueType of Change
Testing
Verified via CloudWatch logs — confirmed webhook executions for workflow
1f83dd97were passing preprocessing and being queued but never executing after the v0.6.40 deploy. Last successful execution was April 13 5:33 PM PST, matching the deploy timeline.Checklist