agent loop detected: agent retrying failed dbt test in infinite loop error
Give the agent a retry ledger: every dbt test retry must record the test, the failure output, and the change made since the last attempt, and the loop must terminate after a small fixed number of attempts per test with a failure summary. Use when an agent retrying a failed dbt test in an infinite loop. Not for a retry that follows a genuine model or data fix, which is correct verification behaviour instead.
TL;DR
Give the agent a retry ledger: every dbt test retry must record the test, the failure output, and the change made since the last attempt, and the loop must terminate after a small fixed number of attempts per test with a failure summary. An agent retrying a deterministic test failure without changing the model or the data is not debugging; it is waiting for a different result that cannot come.
agent loop detected: agent retrying failed dbt test in infinite loop errorUse this when
- The check or run fails with this symptom: the agent cycles endlessly on the same failed dbt test.
- You are working on an agent retrying a failed dbt test in an infinite loop and the failure repeats on the same data or configuration.
- You need the failing rows, rule, or stage isolated before changing thresholds or code.
Not for this skill when
- A retry that follows a genuine model or data fix, which is correct verification behaviour instead.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.
Steps
- Extract the agent's attempt history for the test and verify the failure output is identical across attempts. Verify: identical attempts are documented
- Add an attempt ledger keyed by test name and input state, recording the change made before each retry. Verify: the ledger exists and is written per attempt
- Enforce a hard attempt cap per test, after which the agent writes a failure summary and stops that branch of work. Verify: the cap is configured and tested
- Require a change token, such as a model file hash or a data reload marker, to differ before a retry is permitted. Verify: retries without a changed token are blocked
- Replay the original failure and confirm the agent stops at the cap with a usable summary instead of looping. Verify: the replay terminates with the summary produced
Variant phrasings
agent retrying failed dbt test infinite loop
The verbatim dbt-loop phrasing.
dbt test retry ledger attempt cap agent
The ledger phrasing for recorded attempts and changes.
agent loop deterministic test failure stop rule
The stop-rule phrasing for deterministic failures.
Compatibility: Agent retry handling around dbt test failures in CI-style loops
Why it happens
dbt tests are deterministic for fixed data and models, so an unchanged retry has a certain outcome. Agents loop because their instructions reward completion and nothing in the loop represents attempts or state, the same structural gap behind most agent retry storms.
Edge cases / pitfalls
- Transient warehouse errors deserve retries with backoff, keyed on the error type, not the test result.
- The failure summary should include the compiled test SQL so a human can reproduce in one step.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_CFaIZj6FSo6H02m91Ze0aw