Treat database is locked as a transient child failure and retry

b9f387483358 · AtlantisPleb · · parent 02a0364b5587

Treat database is locked as a transient child failure and retry

A child can fail with 'database is locked' or 'SQLITE_BUSY' when several
of them hit the shared pylon orchestration SQLite at the same time. That
is transient, so the DelegateFleet now retries it with the same
exponential backoff used for provider failures (2s, 4s, 8s, up to 3
attempts).

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By
Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

Not deployed through the forge lane

No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.

Changed files

  • modified packages/openagents-cli/src/coder-delegate.ts

Diff

1 file changed, +2 -0

packages/openagents-cli/src/coder-delegate.ts modified +2

@@ -1127,6 +1127,8 @@ export function transientProviderFailure(message: string): boolean {

1127 1127
    "etimedout",
1128 1128
    "gateway timeout",
1129 1129
    "bad gateway",
1130
    "database is locked",
1131
    "sqlite_busy",
1130 1132
    "502",
1131 1133
    "503",
1132 1134
    "504",

This page updates live while a promote is in flight · changelog