---
slug: "Retry"
name: "Retry"
type: "Strategy"
layer: "Mind"
ref: "Retry#4f9f"
sema_id: "sema:Retry#mh:SHA-256:4f9fdfc5b1dafd31221e9426d62c02af80c6356ef5b446eddd3f50da961d1aa2"
tags: ["Mind","Strategy"]
updated: 2026-11-11
mindscape: "bootstrap"
index_url: https://mindscape.pages.dev/bootstrap/index.json
url: https://mindscape.pages.dev/bootstrap/Retry/
related: ["ExponentialBackoff","Backoff","Break","CircuitBreaker","Compensate","ContingencyPlan","FrameError","Plateauturn","ReAttempt","sema:Backoff#mh:SHA-256:9e59718422f5408d7892feccb6d538a21103f9573b122b891ee3c8cf66303e72","Plateauturn#240d"]
---

# Retry

Classified re-attempt with backoff conditioned on failure type

Layer: Mind · Category: Strategy

## Mechanism

Intelligent re-attempt of failed coordination with failure-informed strategy. After BREAK + COMPENSATE, agent evaluates: (1) CLASSIFY failure—transient (timeout, rate-limit, network blip) vs persistent (capability gap, protocol mismatch, explicit rejection). (2) CHECK retry_hint from BREAK (partner may say 'don't retry' or 'wait 30s'). (3) CONSULT failure_history—same error repeating? [CircuitBreaker](https://mindscape.pages.dev/bootstrap/CircuitBreaker.md) threshold reached? (4) COMPUTE [Backoff](https://mindscape.pages.dev/bootstrap/Backoff.md)—adaptive based on failure type: transient uses [ExponentialBackoff](https://mindscape.pages.dev/bootstrap/ExponentialBackoff.md), persistent uses longer fixed delay or triggers abort. (5) VERIFY changed_conditions—has something changed that makes retry worthwhile? (6) EXECUTE retry if within budget and conditions favor success, else ABORT with retry_exhausted status. Retry CARRIES FORWARD: failure context, partner state observations, environmental data. Retry RESETS: coordination state (fresh start, don't resume mid-stream). It handles transient failures by re-queuing the task, distinguishing them from terminal failures that trigger [Break](https://mindscape.pages.dev/bootstrap/Break.md) and [Compensate](https://mindscape.pages.dev/bootstrap/Compensate.md).

## Invariants

- Classifies the failure before deciding, and records the classification.
- [Backoff](https://mindscape.pages.dev/bootstrap/Backoff.md) applied between attempts.
- Attempts do not exceed `max_attempts`.

## Preconditions

- A failure has occurred and its details are available to classify

## Postconditions

- Success or definitive failure

## Failure modes

- Misclassifying persistent failure as transient (wastes retry budget).
- Misclassifying transient as persistent (gives up too soon).
- [Backoff](https://mindscape.pages.dev/bootstrap/Backoff.md) too aggressive (slow recovery from transient issues).
- [Backoff](https://mindscape.pages.dev/bootstrap/Backoff.md) too timid (hammers already-failing system).
- [CircuitBreaker](https://mindscape.pages.dev/bootstrap/CircuitBreaker.md) too sensitive (abandons recoverable situations).
- Retry succeeds but same failure recurs (didn't address root cause).
- Changed_conditions check misses relevant changes.

## Parameters

- `max_attempts` (Integer, [1, 10]): Attempts before giving up. Referenced by the third invariant, which previously named a Max_Retries nothing defined.

## Builds on

- [ExponentialBackoff](https://mindscape.pages.dev/bootstrap/ExponentialBackoff.md) (Infrastructure; Composes with)
- [Backoff](https://mindscape.pages.dev/bootstrap/Backoff.md) (Infrastructure; References)
- [Break](https://mindscape.pages.dev/bootstrap/Break.md) (Infrastructure; References)
- [CircuitBreaker](https://mindscape.pages.dev/bootstrap/CircuitBreaker.md) (Infrastructure; References)
- [Compensate](https://mindscape.pages.dev/bootstrap/Compensate.md) (Infrastructure; References)

## Used by

- [ContingencyPlan](https://mindscape.pages.dev/bootstrap/ContingencyPlan.md) (Mind; References)
- [FrameError](https://mindscape.pages.dev/bootstrap/FrameError.md) (Mind; References)
- [Plateauturn](https://mindscape.pages.dev/bootstrap/Plateauturn.md) (Mind; References)
- [ReAttempt](https://mindscape.pages.dev/bootstrap/ReAttempt.md) (Infrastructure; References)

## Identity

- Sema ID: `sema:Retry#mh:SHA-256:4f9fdfc5b1dafd31221e9426d62c02af80c6356ef5b446eddd3f50da961d1aa2`
- Ref: `Retry#4f9f`
- Supersedes:
  - `sema:Retry#mh:SHA-256:d53d7b3af592e07dfb4d8f4cb3d74472da4514f0954d2138f2148e81bd55882a`
  - `sema:Retry#mh:SHA-256:07b7eedd84065dbf822183e0ae1512edb92caa0867bf7c9225b85371721d0091`
  - `sema:Retry#mh:SHA-256:79b69773b2fdd6fc81b1205d1088e9df841db683a982e079fc2dca97f4818804`
  - `sema:Retry#mh:SHA-256:9e178c29dd1aa774432d8eb6e87fb2e93ab5b1a6db9582f737ad60e9ddf56053`
  - `sema:Retry#mh:SHA-256:5e7921bf0dc8d896f922c3e163156be786471af8cfdfbfc8ec22dd5e0e68ab2a`

## Links

- [Pattern page](https://mindscape.pages.dev/bootstrap/Retry/)
- [View in the interactive graph](https://mindscape.pages.dev/bootstrap/#Retry)
- [JSON](https://mindscape.pages.dev/bootstrap/Retry.json)
- [Index of all patterns](https://mindscape.pages.dev/bootstrap/index.json)
