Tide · API

tide.retry

tide.retry reopens a task that failed permanently: the task returns to pending and its run from settled to fanned, so the next advance executes it. Returns false for a task that is not failed.

Reflex
{
  id: 'reminders.nightly',
  intent: 'Every night at 21:00, text each member about tomorrow’s show.',
  on: {
    clock: { every: 'day', at: '21:00', tz: 'Europe/Vienna' },
  },
  select: {
    query: { table: 'members' },
    mode: 'each',
    unitKey: 'id',
  },
  effect: { name: 'sms.send', input: { to: { $ref: '$.row.id' } } },
  policy: { retry: { max: 1, backoff: 'fixed', baseMs: 300000 } },
}
Scenario
Linus’s carrier times out until 22:00 on Friday. Every other text goes through.
retry, step by step
Linus’s task and its run
{
  task: 'failed',
  attempt: 2,
  error: 'the SMS gateway timed out',
  run: 'settled',
  done: 5,
  failed: 1,
}
Output matches the expected value

Runs in this page on the installed package. The input and the expected output are defined by the example.