FAILURE MAP

Understand the failure.
Verify the repair.

Small, reproducible software failures. The broken implementation, the fix that didn’t work, and the one that passed—preserved together.

Explore the cases ↓How results are verified ↗
100840Executable case variants
20168Distinct failure mechanisms
302520Executed implementations
20168Open-access cases

WHAT THE ARCHIVE CONTAINS

100840 executable cases. 20168 are open.

Every case records the implementation that fails, the fix that did not work, and the repair that passed its checks—with recorded outputs and source hashes. This release adds 100840 cases across 20168 failure mechanisms and 254 domains.

The open tier gives you the failure and the unsuccessful fix for one case in every mechanism. The remaining 80672 cases, 5 variants per mechanism, are member-only: the verified repair, its recorded checks, and the full fixture suite are held in the member archive. Read the methodology ↗

A RECORD OF WHAT WENT WRONG

Browse the archive / 100840

Python · Standard library
REFERENCEFAILURE MECHANISMDOMAINACCESS
FA-74001

Scheduled rollout ramp: Hold steps reset the rollout to zero · case 01

A schedule pause entry turns the feature off instead of holding the current percentage.

Feature flag rollout bucketing● Open access↗
FA-74002

Scheduled rollout ramp: Hold steps reset the rollout to zero · case 02

A schedule pause entry turns the feature off instead of holding the current percentage.

Feature flag rollout bucketing◈ Members↗
FA-74003

Scheduled rollout ramp: Hold steps reset the rollout to zero · case 03

A schedule pause entry turns the feature off instead of holding the current percentage.

Feature flag rollout bucketing◈ Members↗
FA-74004

Scheduled rollout ramp: Hold steps reset the rollout to zero · case 04

A schedule pause entry turns the feature off instead of holding the current percentage.

Feature flag rollout bucketing◈ Members↗
FA-74005

Scheduled rollout ramp: Hold steps reset the rollout to zero · case 05

A schedule pause entry turns the feature off instead of holding the current percentage.

Feature flag rollout bucketing◈ Members↗
FA-74006

Scheduled rollout ramp: Negative step percentages pass through · case 01

A mistyped -20 percent step reports a negative rollout that downstream gates treat inconsistently.

Feature flag rollout bucketing● Open access↗
FA-74007

Scheduled rollout ramp: Negative step percentages pass through · case 02

A mistyped -20 percent step reports a negative rollout that downstream gates treat inconsistently.

Feature flag rollout bucketing◈ Members↗
FA-74008

Scheduled rollout ramp: Negative step percentages pass through · case 03

A mistyped -20 percent step reports a negative rollout that downstream gates treat inconsistently.

Feature flag rollout bucketing◈ Members↗
FA-74009

Scheduled rollout ramp: Negative step percentages pass through · case 04

A mistyped -20 percent step reports a negative rollout that downstream gates treat inconsistently.

Feature flag rollout bucketing◈ Members↗
FA-74010

Scheduled rollout ramp: Negative step percentages pass through · case 05

A mistyped -20 percent step reports a negative rollout that downstream gates treat inconsistently.

Feature flag rollout bucketing◈ Members↗
FA-74011

Scheduled rollout ramp: Active step is reported by sorted position · case 01

Dashboards highlight the wrong schedule row as the active step.

Feature flag rollout bucketing● Open access↗
FA-74012

Scheduled rollout ramp: Active step is reported by sorted position · case 02

Dashboards highlight the wrong schedule row as the active step.

Feature flag rollout bucketing◈ Members↗
FA-74013

Scheduled rollout ramp: Active step is reported by sorted position · case 03

Dashboards highlight the wrong schedule row as the active step.

Feature flag rollout bucketing◈ Members↗
FA-74014

Scheduled rollout ramp: Active step is reported by sorted position · case 04

Dashboards highlight the wrong schedule row as the active step.

Feature flag rollout bucketing◈ Members↗
FA-74015

Scheduled rollout ramp: Active step is reported by sorted position · case 05

Dashboards highlight the wrong schedule row as the active step.

Feature flag rollout bucketing◈ Members↗
FA-74016

Flag value cache freshness: Cached values survive their full ttl second · case 01

A value exactly 30 seconds old is still served from cache.

Feature flag rollout bucketing● Open access↗
FA-74017

Flag value cache freshness: Cached values survive their full ttl second · case 02

A value exactly 30 seconds old is still served from cache.

Feature flag rollout bucketing◈ Members↗
FA-74018

Flag value cache freshness: Cached values survive their full ttl second · case 03

A value exactly 30 seconds old is still served from cache.

Feature flag rollout bucketing◈ Members↗
FA-74019

Flag value cache freshness: Cached values survive their full ttl second · case 04

A value exactly 30 seconds old is still served from cache.

Feature flag rollout bucketing◈ Members↗
FA-74020

Flag value cache freshness: Cached values survive their full ttl second · case 05

A value exactly 30 seconds old is still served from cache.

Feature flag rollout bucketing◈ Members↗
FA-74021

Flag value cache freshness: Refetch merges into the old cache · case 01

A flag deleted on the server keeps serving its last cached value.

Feature flag rollout bucketing● Open access↗
FA-74022

Flag value cache freshness: Refetch merges into the old cache · case 02

A flag deleted on the server keeps serving its last cached value.

Feature flag rollout bucketing◈ Members↗
FA-74023

Flag value cache freshness: Refetch merges into the old cache · case 03

A flag deleted on the server keeps serving its last cached value.

Feature flag rollout bucketing◈ Members↗
FA-74024

Flag value cache freshness: Refetch merges into the old cache · case 04

A flag deleted on the server keeps serving its last cached value.

Feature flag rollout bucketing◈ Members↗
FA-74025

Flag value cache freshness: Refetch merges into the old cache · case 05

A flag deleted on the server keeps serving its last cached value.

Feature flag rollout bucketing◈ Members↗
FA-74026

Flag value cache freshness: Kill switches survive a refetch · case 01

After an operator fixes a flag and clients refetch, the old kill switch keeps forcing defaults.

Feature flag rollout bucketing● Open access↗
FA-74027

Flag value cache freshness: Kill switches survive a refetch · case 02

After an operator fixes a flag and clients refetch, the old kill switch keeps forcing defaults.

Feature flag rollout bucketing◈ Members↗
FA-74028

Flag value cache freshness: Kill switches survive a refetch · case 03

After an operator fixes a flag and clients refetch, the old kill switch keeps forcing defaults.

Feature flag rollout bucketing◈ Members↗
FA-74029

Flag value cache freshness: Kill switches survive a refetch · case 04

After an operator fixes a flag and clients refetch, the old kill switch keeps forcing defaults.

Feature flag rollout bucketing◈ Members↗
FA-74030

Flag value cache freshness: Kill switches survive a refetch · case 05

After an operator fixes a flag and clients refetch, the old kill switch keeps forcing defaults.

Feature flag rollout bucketing◈ Members↗
FA-74031

Flag value cache freshness: Staleness masks an active kill switch · case 01

A killed flag is reported as stale, hiding the operator action in diagnostics.

Feature flag rollout bucketing● Open access↗
FA-74032

Flag value cache freshness: Staleness masks an active kill switch · case 02

A killed flag is reported as stale, hiding the operator action in diagnostics.

Feature flag rollout bucketing◈ Members↗
FA-74033

Flag value cache freshness: Staleness masks an active kill switch · case 03

A killed flag is reported as stale, hiding the operator action in diagnostics.

Feature flag rollout bucketing◈ Members↗
FA-74034

Flag value cache freshness: Staleness masks an active kill switch · case 04

A killed flag is reported as stale, hiding the operator action in diagnostics.

Feature flag rollout bucketing◈ Members↗
FA-74035

Flag value cache freshness: Staleness masks an active kill switch · case 05

A killed flag is reported as stale, hiding the operator action in diagnostics.

Feature flag rollout bucketing◈ Members↗
FA-74036

Flag value cache freshness: Only the first fetch starts the ttl clock · case 01

Clients go stale 30 seconds after startup even though they refetch continuously.

Feature flag rollout bucketing● Open access↗
FA-74037

Flag value cache freshness: Only the first fetch starts the ttl clock · case 02

Clients go stale 30 seconds after startup even though they refetch continuously.

Feature flag rollout bucketing◈ Members↗
FA-74038

Flag value cache freshness: Only the first fetch starts the ttl clock · case 03

Clients go stale 30 seconds after startup even though they refetch continuously.

Feature flag rollout bucketing◈ Members↗
FA-74039

Flag value cache freshness: Only the first fetch starts the ttl clock · case 04

Clients go stale 30 seconds after startup even though they refetch continuously.

Feature flag rollout bucketing◈ Members↗
FA-74040

Flag value cache freshness: Only the first fetch starts the ttl clock · case 05

Clients go stale 30 seconds after startup even though they refetch continuously.

Feature flag rollout bucketing◈ Members↗
FA-74041

Sticky variant persistence: Records from older experiment versions stay sticky · case 01

After an experiment restart users keep the arm from the previous version.

Feature flag rollout bucketing● Open access↗
FA-74042

Sticky variant persistence: Records from older experiment versions stay sticky · case 02

After an experiment restart users keep the arm from the previous version.

Feature flag rollout bucketing◈ Members↗
FA-74043

Sticky variant persistence: Records from older experiment versions stay sticky · case 03

After an experiment restart users keep the arm from the previous version.

Feature flag rollout bucketing◈ Members↗
FA-74044

Sticky variant persistence: Records from older experiment versions stay sticky · case 04

After an experiment restart users keep the arm from the previous version.

Feature flag rollout bucketing◈ Members↗
FA-74045

Sticky variant persistence: Records from older experiment versions stay sticky · case 05

After an experiment restart users keep the arm from the previous version.

Feature flag rollout bucketing◈ Members↗
FA-74046

Sticky variant persistence: Retired variants remain sticky · case 01

Users keep receiving a variant that has been removed from the experiment.

Feature flag rollout bucketing● Open access↗
FA-74047

Sticky variant persistence: Retired variants remain sticky · case 02

Users keep receiving a variant that has been removed from the experiment.

Feature flag rollout bucketing◈ Members↗
FA-74048

Sticky variant persistence: Retired variants remain sticky · case 03

Users keep receiving a variant that has been removed from the experiment.

Feature flag rollout bucketing◈ Members↗
FA-74049

Sticky variant persistence: Retired variants remain sticky · case 04

Users keep receiving a variant that has been removed from the experiment.

Feature flag rollout bucketing◈ Members↗
FA-74050

Sticky variant persistence: Retired variants remain sticky · case 05

Users keep receiving a variant that has been removed from the experiment.

Feature flag rollout bucketing◈ Members↗
FA-74051

Sticky variant persistence: Traffic exclusion erases the stored assignment · case 01

Temporarily shrinking traffic loses users' history, so they are reshuffled when traffic returns.

Feature flag rollout bucketing● Open access↗
FA-74052

Sticky variant persistence: Traffic exclusion erases the stored assignment · case 02

Temporarily shrinking traffic loses users' history, so they are reshuffled when traffic returns.

Feature flag rollout bucketing◈ Members↗
FA-74053

Sticky variant persistence: Traffic exclusion erases the stored assignment · case 03

Temporarily shrinking traffic loses users' history, so they are reshuffled when traffic returns.

Feature flag rollout bucketing◈ Members↗
FA-74054

Sticky variant persistence: Traffic exclusion erases the stored assignment · case 04

Temporarily shrinking traffic loses users' history, so they are reshuffled when traffic returns.

Feature flag rollout bucketing◈ Members↗
FA-74055

Sticky variant persistence: Traffic exclusion erases the stored assignment · case 05

Temporarily shrinking traffic loses users' history, so they are reshuffled when traffic returns.

Feature flag rollout bucketing◈ Members↗
FA-74056

Sticky variant persistence: Newer stored versions are accepted · case 01

After rolling an experiment back, records written by the abandoned newer version stay sticky.

Feature flag rollout bucketing● Open access↗
FA-74057

Sticky variant persistence: Newer stored versions are accepted · case 02

After rolling an experiment back, records written by the abandoned newer version stay sticky.

Feature flag rollout bucketing◈ Members↗
FA-74058

Sticky variant persistence: Newer stored versions are accepted · case 03

After rolling an experiment back, records written by the abandoned newer version stay sticky.

Feature flag rollout bucketing◈ Members↗
FA-74059

Sticky variant persistence: Newer stored versions are accepted · case 04

After rolling an experiment back, records written by the abandoned newer version stay sticky.

Feature flag rollout bucketing◈ Members↗
FA-74060

Sticky variant persistence: Newer stored versions are accepted · case 05

After rolling an experiment back, records written by the abandoned newer version stay sticky.

Feature flag rollout bucketing◈ Members↗
FA-74061

Sticky variant persistence: Exclusion is checked before sticky records · case 01

Reducing traffic allocation drops users who already had a valid sticky assignment.

Feature flag rollout bucketing● Open access↗
FA-74062

Sticky variant persistence: Exclusion is checked before sticky records · case 02

Reducing traffic allocation drops users who already had a valid sticky assignment.

Feature flag rollout bucketing◈ Members↗
FA-74063

Sticky variant persistence: Exclusion is checked before sticky records · case 03

Reducing traffic allocation drops users who already had a valid sticky assignment.

Feature flag rollout bucketing◈ Members↗
FA-74064

Sticky variant persistence: Exclusion is checked before sticky records · case 04

Reducing traffic allocation drops users who already had a valid sticky assignment.

Feature flag rollout bucketing◈ Members↗
FA-74065

Sticky variant persistence: Exclusion is checked before sticky records · case 05

Reducing traffic allocation drops users who already had a valid sticky assignment.

Feature flag rollout bucketing◈ Members↗
FA-74066

Mutually exclusive layer allocation: Range ends are inclusive · case 01

The user at a shared boundary is claimed by the earlier experiment, so adjacent ranges overlap.

Feature flag rollout bucketing● Open access↗
FA-74067

Mutually exclusive layer allocation: Range ends are inclusive · case 02

The user at a shared boundary is claimed by the earlier experiment, so adjacent ranges overlap.

Feature flag rollout bucketing◈ Members↗
FA-74068

Mutually exclusive layer allocation: Range ends are inclusive · case 03

The user at a shared boundary is claimed by the earlier experiment, so adjacent ranges overlap.

Feature flag rollout bucketing◈ Members↗
FA-74069

Mutually exclusive layer allocation: Range ends are inclusive · case 04

The user at a shared boundary is claimed by the earlier experiment, so adjacent ranges overlap.

Feature flag rollout bucketing◈ Members↗
FA-74070

Mutually exclusive layer allocation: Range ends are inclusive · case 05

The user at a shared boundary is claimed by the earlier experiment, so adjacent ranges overlap.

Feature flag rollout bucketing◈ Members↗
FA-74071

Mutually exclusive layer allocation: Paused experiments release their range · case 01

Pausing an experiment pours its users into an overlapping experiment listed later.

Feature flag rollout bucketing● Open access↗
FA-74072

Mutually exclusive layer allocation: Paused experiments release their range · case 02

Pausing an experiment pours its users into an overlapping experiment listed later.

Feature flag rollout bucketing◈ Members↗
FA-74073

Mutually exclusive layer allocation: Paused experiments release their range · case 03

Pausing an experiment pours its users into an overlapping experiment listed later.

Feature flag rollout bucketing◈ Members↗
FA-74074

Mutually exclusive layer allocation: Paused experiments release their range · case 04

Pausing an experiment pours its users into an overlapping experiment listed later.

Feature flag rollout bucketing◈ Members↗
FA-74075

Mutually exclusive layer allocation: Paused experiments release their range · case 05

Pausing an experiment pours its users into an overlapping experiment listed later.

Feature flag rollout bucketing◈ Members↗
FA-74076

Mutually exclusive layer allocation: The last overlapping range wins · case 01

Adding a new experiment at the end of a layer silently steals users from earlier ones.

Feature flag rollout bucketing● Open access↗
FA-74077

Mutually exclusive layer allocation: The last overlapping range wins · case 02

Adding a new experiment at the end of a layer silently steals users from earlier ones.

Feature flag rollout bucketing◈ Members↗
FA-74078

Mutually exclusive layer allocation: The last overlapping range wins · case 03

Adding a new experiment at the end of a layer silently steals users from earlier ones.

Feature flag rollout bucketing◈ Members↗
FA-74079

Mutually exclusive layer allocation: The last overlapping range wins · case 04

Adding a new experiment at the end of a layer silently steals users from earlier ones.

Feature flag rollout bucketing◈ Members↗
FA-74080

Mutually exclusive layer allocation: The last overlapping range wins · case 05

Adding a new experiment at the end of a layer silently steals users from earlier ones.

Feature flag rollout bucketing◈ Members↗
FA-74081

Mutually exclusive layer allocation: Percent bounds are scaled to basis points · case 01

Every range reaches ten times too far, so the first experiment captures nearly the whole layer.

Feature flag rollout bucketing● Open access↗
FA-74082

Mutually exclusive layer allocation: Percent bounds are scaled to basis points · case 02

Every range reaches ten times too far, so the first experiment captures nearly the whole layer.

Feature flag rollout bucketing◈ Members↗
FA-74083

Mutually exclusive layer allocation: Percent bounds are scaled to basis points · case 03

Every range reaches ten times too far, so the first experiment captures nearly the whole layer.

Feature flag rollout bucketing◈ Members↗
FA-74084

Mutually exclusive layer allocation: Percent bounds are scaled to basis points · case 04

Every range reaches ten times too far, so the first experiment captures nearly the whole layer.

Feature flag rollout bucketing◈ Members↗
FA-74085

Mutually exclusive layer allocation: Percent bounds are scaled to basis points · case 05

Every range reaches ten times too far, so the first experiment captures nearly the whole layer.

Feature flag rollout bucketing◈ Members↗
FA-74086

Mutually exclusive layer allocation: Layer hash drops the separator · case 01

Layer salts and user ids run together, so ("ab", "c") and ("a", "bc") share a bucket and SDKs disagree.

Feature flag rollout bucketing● Open access↗
FA-74087

Mutually exclusive layer allocation: Layer hash drops the separator · case 02

Layer salts and user ids run together, so ("ab", "c") and ("a", "bc") share a bucket and SDKs disagree.

Feature flag rollout bucketing◈ Members↗
FA-74088

Mutually exclusive layer allocation: Layer hash drops the separator · case 03

Layer salts and user ids run together, so ("ab", "c") and ("a", "bc") share a bucket and SDKs disagree.

Feature flag rollout bucketing◈ Members↗
FA-74089

Mutually exclusive layer allocation: Layer hash drops the separator · case 04

Layer salts and user ids run together, so ("ab", "c") and ("a", "bc") share a bucket and SDKs disagree.

Feature flag rollout bucketing◈ Members↗
FA-74090

Mutually exclusive layer allocation: Layer hash drops the separator · case 05

Layer salts and user ids run together, so ("ab", "c") and ("a", "bc") share a bucket and SDKs disagree.

Feature flag rollout bucketing◈ Members↗
FA-74091

Global holdout exclusion: Holdout overrides explicit forcing · case 01

QA accounts that happen to hash into the holdout cannot be forced into treatment.

Feature flag rollout bucketing● Open access↗
FA-74092

Global holdout exclusion: Holdout overrides explicit forcing · case 02

QA accounts that happen to hash into the holdout cannot be forced into treatment.

Feature flag rollout bucketing◈ Members↗
FA-74093

Global holdout exclusion: Holdout overrides explicit forcing · case 03

QA accounts that happen to hash into the holdout cannot be forced into treatment.

Feature flag rollout bucketing◈ Members↗
FA-74094

Global holdout exclusion: Holdout overrides explicit forcing · case 04

QA accounts that happen to hash into the holdout cannot be forced into treatment.

Feature flag rollout bucketing◈ Members↗
FA-74095

Global holdout exclusion: Holdout overrides explicit forcing · case 05

QA accounts that happen to hash into the holdout cannot be forced into treatment.

Feature flag rollout bucketing◈ Members↗
FA-74096

Global holdout exclusion: The holdout reuses the flag bucket · case 01

Holdout membership differs per flag, so every user is held out of some launches and exposed to others.

Feature flag rollout bucketing● Open access↗
FA-74097

Global holdout exclusion: The holdout reuses the flag bucket · case 02

Holdout membership differs per flag, so every user is held out of some launches and exposed to others.

Feature flag rollout bucketing◈ Members↗
FA-74098

Global holdout exclusion: The holdout reuses the flag bucket · case 03

Holdout membership differs per flag, so every user is held out of some launches and exposed to others.

Feature flag rollout bucketing◈ Members↗
FA-74099

Global holdout exclusion: The holdout reuses the flag bucket · case 04

Holdout membership differs per flag, so every user is held out of some launches and exposed to others.

Feature flag rollout bucketing◈ Members↗
FA-74100

Global holdout exclusion: The holdout reuses the flag bucket · case 05

Holdout membership differs per flag, so every user is held out of some launches and exposed to others.

Feature flag rollout bucketing◈ Members↗

INSPECTABLE BY DESIGN

Every result has a runnable source.

Runnable implementations with recorded outputs, source hashes, and explicit contracts. Related variants share a failure mechanism and belong together in evaluation splits.

Read the methodology ↗