Auto-retry failed Airbyte syncs before paging on-call

By General Input

Every 30 minutes, quietly re-run any failed Airbyte sync on a critical connection once, and only page the on-call in PagerDuty and Slack if the retry still fails.

Integrations

  • Airbyte
  • PagerDuty
  • Slack Bot

Type

Agentic Task

Categories

  • Operations
  • Engineering

Run this workflow on a cron every 30 minutes. Its job is to give critical Airbyte pipelines exactly one automatic retry before a human is paged, since Airbyte's own auto-disable only kicks in after 14 straight days of failures which is far too slow for pipelines the business actually depends on.

Start each run by calling Airbyte List Jobs with a status filter of failed, scoped to the last hour. For every failure returned, decide whether the underlying connection is tagged critical (only critical connections are in scope for this workflow, everything else should be ignored).

Before retrying, inspect the failure reason. If it looks like an authentication problem (expired token, invalid credentials, 401/403) or a schema mismatch (destination column missing, incompatible type, normalization error), skip the retry entirely and jump straight to the escalation path below, because those failures will not fix themselves. Also skip the retry if the same connection has already been retried by this workflow in the last hour, so we do not hammer a broken source.

Otherwise, kick off one retry with Airbyte Trigger Sync or Reset Job (jobType=sync) for that connection, wait a short interval to give the job time to complete, then call Airbyte Get Job Details on the new job id to see the outcome. If the retry succeeded, log the recovery and move on silently.

If the retry also failed (or the failure was skipped as auth/schema), escalate. Call PagerDuty Create Incident on the data-ops service, using a title that names the Airbyte connection and a body that includes the failure reason, the failing job id, and a link back to the connection in Airbyte. Then use Slack Bot Send a Message to post in the #data-ops channel, referencing the PagerDuty incident URL and the connection name so the on-call can jump straight to the right place.

A note on Airbyte Cloud auth: the cloud API's access tokens expire in roughly 3 minutes, so mint a fresh token at the start of each burst of calls rather than caching one across the whole 30-minute cycle.

Keep the output quiet on the happy path. A run that retries three failures and recovers all three should produce no Slack noise at all. The value of this workflow is that humans only hear from it when something is actually broken.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them