FAILURE MAP
← Case archive

FA-041 / Reliability / Open access

A retry counter produces an unbounded delay · case 01

Repeated failures produce a retry delay larger than the configured limit.

Verified by executionVariant 1 · 3 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The exponential delay omits the cap or applies a lower bound instead.

VERIFIED REPAIR

Apply the configured upper bound after computing exponential delay.

Unsuccessful approach: Using max turns the cap into a minimum delay.

Case contract

Apply the configured upper bound after computing exponential delay.

Why this case matters

A compact reasoning and repair task with executable evidence.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(base, attempt, cap):
    return base * 2 ** attempt
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('bounded late retry', solve(N, 10, 30), 30)
check('initial retry', solve(N, 0, 30), N)
check('zero base', solve(0, 4, 30), 0)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
bounded late retry102430Failed
initial retry11Passed
zero base00Passed

SHA-256 / a8f2c534b55ed70deefcc4bcfae2891091e4404265466eaf432a6bf9e0bea785

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(base, attempt, cap):
    return max(cap, base * 2 ** attempt)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('bounded late retry', solve(N, 10, 30), 30)
check('initial retry', solve(N, 0, 30), N)
check('zero base', solve(0, 4, 30), 0)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
bounded late retry102430Failed
initial retry301Failed
zero base300Failed

SHA-256 / 9f7a906698b1c02a1adc449bc5a02576784b45cefc905e936e6893d5e9a06fe6

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(base, attempt, cap):
    return min(cap, base * 2 ** attempt)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('bounded late retry', solve(N, 10, 30), 30)
check('initial retry', solve(N, 0, 30), N)
check('zero base', solve(0, 4, 30), 0)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
bounded late retry3030Passed
initial retry11Passed
zero base00Passed

SHA-256 / 4b275fb271d62d7cc9b28c633d1394d9cf06688f0e4cfc00a503fff808cf4ace

Verification & scope

This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:36:49.871824+00:00.

Case digest / 512599dc4f465759f7aeffa1d57b8a39a6b50f4b39a4f4dc26fcd99a2c360d20