re-trigger-contract-executed-webhook-bulk-timeout
Bulk CONTRACT_EXECUTED webhook re-trigger — timeout / partial completion
What this skill debugs
Symptom class: A bulk operation to resend CONTRACT_EXECUTED events to public API webhooks runs for a large set of contracts but stops before finishing. Ops or support report partial success (e.g. “{completed} of {total} succeeded”) and a list of pending contract_ids.
Typical failure mode: The job runs inside a Celery task or worker-bound process with a soft time limit. Long loops (many contracts × per-contract work × time.sleep between batches) exceed SoftTimeLimitExceeded, so the process aborts. Contracts processed before the limit are fine; the tail never runs.
Not the same as: integration disabled (Tray/native), wrong workspace, or webhook URL misconfiguration — those usually fail all or zero for a slice, not a clean prefix completed + suffix pending after one run.
When to use / when not to use
Use when: