Dead Letter Queue
When an event fails delivery after all retries, it goes to the dead-letter queue (DLQ). No data is lost — every failed event is stored with its full context for investigation and one-click retry.
How events end up in the DLQ
- An event fails delivery to the destination (API error, timeout, validation failure)
- PullPush retries with 10x exponential backoff (increasing delays between attempts)
- If the circuit breaker trips (too many consecutive failures), retries pause to let the destination recover
- After all retries are exhausted, the event moves to the DLQ
What's stored
Each DLQ entry includes:
- Full event payload — the canonical data that was being synced
- Error details — HTTP status, error message, response body
- Retry history — timestamps and results of each retry attempt
- Source context — which connection and flow produced the event
Retrying events
From the dashboard:
- Navigate to the DLQ for your flow
- Review failed events and their error details
- Click Retry on individual events or Retry All for bulk
- Events re-enter the pipeline with fresh retry counters
Clustering
When many events fail for the same reason (e.g., destination API returns 503), PullPush groups them into a cluster. You can:
- See how many events share the same error pattern
- Fix the root cause (e.g., update expired credentials)
- Retry the entire cluster at once
AI remediation
PullPush can analyze DLQ errors and suggest fixes:
- Credential issues — "API key expired, rotate in Settings"
- Schema mismatches — "Field 'variant_id' expected number, got string"
- Rate limiting — "Reduce batch size or enable rate limit config"
These suggestions appear inline with the error details.