Backstop for missed Utila webhooks, and the initial backfill. Each run lists the live vaults registered under Utila vaults and starts one sync per vault, then finishes without waiting for them, so a new vault needs no schedule change and one vault's failure does not hold up the others. A vault's sync first compares Utila's on-chain total against the stored count and stops there when they match. Otherwise it pages the feed newest-first, creating any transactions that are missing, until the counts match, starting again from the newest page if it reaches the end first. A pass through the whole feed that creates nothing fails that vault's sync rather than leaving balances quietly wrong. Existing rows are never duplicated.
{}Showing runs Temporal still retains.
| Started | Scheduled for | Outcome | Workflow id |
|---|---|---|---|
| Completed | utila-vault-transaction-sync-dispatch-workflow-2026-10-03T23:30:00Z (opens in a new tab) |
| Completed | utila-vault-transaction-sync-dispatch-workflow-2026-10-03T23:00:00Z (opens in a new tab) |