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-73801

Combined per-second and per-minute fixed windows: minute counter resets every second · case 01

The per-minute limit is never reached because it is cleared whenever a new second starts.

Rate limiter algorithms● Open access↗
FA-73802

Combined per-second and per-minute fixed windows: minute counter resets every second · case 02

The per-minute limit is never reached because it is cleared whenever a new second starts.

Rate limiter algorithms◈ Members↗
FA-73803

Combined per-second and per-minute fixed windows: minute counter resets every second · case 03

The per-minute limit is never reached because it is cleared whenever a new second starts.

Rate limiter algorithms◈ Members↗
FA-73804

Combined per-second and per-minute fixed windows: minute counter resets every second · case 04

The per-minute limit is never reached because it is cleared whenever a new second starts.

Rate limiter algorithms◈ Members↗
FA-73805

Combined per-second and per-minute fixed windows: minute counter resets every second · case 05

The per-minute limit is never reached because it is cleared whenever a new second starts.

Rate limiter algorithms◈ Members↗
FA-73806

Combined per-second and per-minute fixed windows: minute denial consumes the second budget · case 01

Requests rejected by the minute limit also exhaust the per-second allowance.

Rate limiter algorithms● Open access↗
FA-73807

Combined per-second and per-minute fixed windows: minute denial consumes the second budget · case 02

Requests rejected by the minute limit also exhaust the per-second allowance.

Rate limiter algorithms◈ Members↗
FA-73808

Combined per-second and per-minute fixed windows: minute denial consumes the second budget · case 03

Requests rejected by the minute limit also exhaust the per-second allowance.

Rate limiter algorithms◈ Members↗
FA-73809

Combined per-second and per-minute fixed windows: minute denial consumes the second budget · case 04

Requests rejected by the minute limit also exhaust the per-second allowance.

Rate limiter algorithms◈ Members↗
FA-73810

Combined per-second and per-minute fixed windows: minute denial consumes the second budget · case 05

Requests rejected by the minute limit also exhaust the per-second allowance.

Rate limiter algorithms◈ Members↗
FA-73811

Combined per-second and per-minute fixed windows: minute window computed from milliseconds as seconds · case 01

The minute counter resets every 60 ms and the minute limit is never effective.

Rate limiter algorithms● Open access↗
FA-73812

Combined per-second and per-minute fixed windows: minute window computed from milliseconds as seconds · case 02

The minute counter resets every 60 ms and the minute limit is never effective.

Rate limiter algorithms◈ Members↗
FA-73813

Combined per-second and per-minute fixed windows: minute window computed from milliseconds as seconds · case 03

The minute counter resets every 60 ms and the minute limit is never effective.

Rate limiter algorithms◈ Members↗
FA-73814

Combined per-second and per-minute fixed windows: minute window computed from milliseconds as seconds · case 04

The minute counter resets every 60 ms and the minute limit is never effective.

Rate limiter algorithms◈ Members↗
FA-73815

Combined per-second and per-minute fixed windows: minute window computed from milliseconds as seconds · case 05

The minute counter resets every 60 ms and the minute limit is never effective.

Rate limiter algorithms◈ Members↗
FA-73816

Combined per-second and per-minute fixed windows: minute limit reported first · case 01

Clients exhausted on both limits are told to wait for the minute reset instead of the next second.

Rate limiter algorithms● Open access↗
FA-73817

Combined per-second and per-minute fixed windows: minute limit reported first · case 02

Clients exhausted on both limits are told to wait for the minute reset instead of the next second.

Rate limiter algorithms◈ Members↗
FA-73818

Combined per-second and per-minute fixed windows: minute limit reported first · case 03

Clients exhausted on both limits are told to wait for the minute reset instead of the next second.

Rate limiter algorithms◈ Members↗
FA-73819

Combined per-second and per-minute fixed windows: minute limit reported first · case 04

Clients exhausted on both limits are told to wait for the minute reset instead of the next second.

Rate limiter algorithms◈ Members↗
FA-73820

Combined per-second and per-minute fixed windows: minute limit reported first · case 05

Clients exhausted on both limits are told to wait for the minute reset instead of the next second.

Rate limiter algorithms◈ Members↗
FA-73821

Max-min fair split of a global rate limit: share divided among satisfied clients too · case 01

Capacity is split among clients that no longer need it, needing extra rounds and misallocating the remainder.

Rate limiter algorithms● Open access↗
FA-73822

Max-min fair split of a global rate limit: share divided among satisfied clients too · case 02

Capacity is split among clients that no longer need it, needing extra rounds and misallocating the remainder.

Rate limiter algorithms◈ Members↗
FA-73823

Max-min fair split of a global rate limit: share divided among satisfied clients too · case 03

Capacity is split among clients that no longer need it, needing extra rounds and misallocating the remainder.

Rate limiter algorithms◈ Members↗
FA-73824

Max-min fair split of a global rate limit: share divided among satisfied clients too · case 04

Capacity is split among clients that no longer need it, needing extra rounds and misallocating the remainder.

Rate limiter algorithms◈ Members↗
FA-73825

Max-min fair split of a global rate limit: share divided among satisfied clients too · case 05

Capacity is split among clients that no longer need it, needing extra rounds and misallocating the remainder.

Rate limiter algorithms◈ Members↗
FA-73826

Max-min fair split of a global rate limit: allocation exceeds demand · case 01

Light clients receive rate they cannot use while heavy clients are starved.

Rate limiter algorithms● Open access↗
FA-73827

Max-min fair split of a global rate limit: allocation exceeds demand · case 02

Light clients receive rate they cannot use while heavy clients are starved.

Rate limiter algorithms◈ Members↗
FA-73828

Max-min fair split of a global rate limit: allocation exceeds demand · case 03

Light clients receive rate they cannot use while heavy clients are starved.

Rate limiter algorithms◈ Members↗
FA-73829

Max-min fair split of a global rate limit: allocation exceeds demand · case 04

Light clients receive rate they cannot use while heavy clients are starved.

Rate limiter algorithms◈ Members↗
FA-73830

Max-min fair split of a global rate limit: allocation exceeds demand · case 05

Light clients receive rate they cannot use while heavy clients are starved.

Rate limiter algorithms◈ Members↗
FA-73831

Max-min fair split of a global rate limit: indivisible remainder discarded · case 01

A few units of capacity are left unused even though clients still want them.

Rate limiter algorithms● Open access↗
FA-73832

Max-min fair split of a global rate limit: indivisible remainder discarded · case 02

A few units of capacity are left unused even though clients still want them.

Rate limiter algorithms◈ Members↗
FA-73833

Max-min fair split of a global rate limit: indivisible remainder discarded · case 03

A few units of capacity are left unused even though clients still want them.

Rate limiter algorithms◈ Members↗
FA-73834

Max-min fair split of a global rate limit: indivisible remainder discarded · case 04

A few units of capacity are left unused even though clients still want them.

Rate limiter algorithms◈ Members↗
FA-73835

Max-min fair split of a global rate limit: indivisible remainder discarded · case 05

A few units of capacity are left unused even though clients still want them.

Rate limiter algorithms◈ Members↗
FA-73836

Max-min fair split of a global rate limit: zero-demand clients dilute the first share · case 01

Clients that asked for nothing shrink everyone else's first-round share and can receive remainder units.

Rate limiter algorithms● Open access↗
FA-73837

Max-min fair split of a global rate limit: zero-demand clients dilute the first share · case 02

Clients that asked for nothing shrink everyone else's first-round share and can receive remainder units.

Rate limiter algorithms◈ Members↗
FA-73838

Max-min fair split of a global rate limit: zero-demand clients dilute the first share · case 03

Clients that asked for nothing shrink everyone else's first-round share and can receive remainder units.

Rate limiter algorithms◈ Members↗
FA-73839

Max-min fair split of a global rate limit: zero-demand clients dilute the first share · case 04

Clients that asked for nothing shrink everyone else's first-round share and can receive remainder units.

Rate limiter algorithms◈ Members↗
FA-73840

Max-min fair split of a global rate limit: zero-demand clients dilute the first share · case 05

Clients that asked for nothing shrink everyone else's first-round share and can receive remainder units.

Rate limiter algorithms◈ Members↗
FA-73841

Percentage rollout gate: User and flag swap places in the hash key · case 01

Users land in different buckets than every other SDK computes for the same flag.

Feature flag rollout bucketing● Open access↗
FA-73842

Percentage rollout gate: User and flag swap places in the hash key · case 02

Users land in different buckets than every other SDK computes for the same flag.

Feature flag rollout bucketing◈ Members↗
FA-73843

Percentage rollout gate: User and flag swap places in the hash key · case 03

Users land in different buckets than every other SDK computes for the same flag.

Feature flag rollout bucketing◈ Members↗
FA-73844

Percentage rollout gate: User and flag swap places in the hash key · case 04

Users land in different buckets than every other SDK computes for the same flag.

Feature flag rollout bucketing◈ Members↗
FA-73845

Percentage rollout gate: User and flag swap places in the hash key · case 05

Users land in different buckets than every other SDK computes for the same flag.

Feature flag rollout bucketing◈ Members↗
FA-73846

Percentage rollout gate: Seven hex digits feed the bucket · case 01

Bucket numbers disagree with the reference for most users while still looking uniform.

Feature flag rollout bucketing● Open access↗
FA-73847

Percentage rollout gate: Seven hex digits feed the bucket · case 02

Bucket numbers disagree with the reference for most users while still looking uniform.

Feature flag rollout bucketing◈ Members↗
FA-73848

Percentage rollout gate: Seven hex digits feed the bucket · case 03

Bucket numbers disagree with the reference for most users while still looking uniform.

Feature flag rollout bucketing◈ Members↗
FA-73849

Percentage rollout gate: Seven hex digits feed the bucket · case 04

Bucket numbers disagree with the reference for most users while still looking uniform.

Feature flag rollout bucketing◈ Members↗
FA-73850

Percentage rollout gate: Seven hex digits feed the bucket · case 05

Bucket numbers disagree with the reference for most users while still looking uniform.

Feature flag rollout bucketing◈ Members↗
FA-73851

Percentage rollout gate: A user whose bucket equals the limit is enabled · case 01

Rollouts expose one extra basis point of traffic, and 0 percent still enables bucket zero.

Feature flag rollout bucketing● Open access↗
FA-73852

Percentage rollout gate: A user whose bucket equals the limit is enabled · case 02

Rollouts expose one extra basis point of traffic, and 0 percent still enables bucket zero.

Feature flag rollout bucketing◈ Members↗
FA-73853

Percentage rollout gate: A user whose bucket equals the limit is enabled · case 03

Rollouts expose one extra basis point of traffic, and 0 percent still enables bucket zero.

Feature flag rollout bucketing◈ Members↗
FA-73854

Percentage rollout gate: A user whose bucket equals the limit is enabled · case 04

Rollouts expose one extra basis point of traffic, and 0 percent still enables bucket zero.

Feature flag rollout bucketing◈ Members↗
FA-73855

Percentage rollout gate: A user whose bucket equals the limit is enabled · case 05

Rollouts expose one extra basis point of traffic, and 0 percent still enables bucket zero.

Feature flag rollout bucketing◈ Members↗
FA-73856

Percentage rollout gate: Float truncation shrinks fractional rollout limits · case 01

A 0.29 percent rollout admits only 28 basis points of buckets.

Feature flag rollout bucketing● Open access↗
FA-73857

Percentage rollout gate: Float truncation shrinks fractional rollout limits · case 02

A 0.29 percent rollout admits only 28 basis points of buckets.

Feature flag rollout bucketing◈ Members↗
FA-73858

Percentage rollout gate: Float truncation shrinks fractional rollout limits · case 03

A 0.29 percent rollout admits only 28 basis points of buckets.

Feature flag rollout bucketing◈ Members↗
FA-73859

Percentage rollout gate: Float truncation shrinks fractional rollout limits · case 04

A 0.29 percent rollout admits only 28 basis points of buckets.

Feature flag rollout bucketing◈ Members↗
FA-73860

Percentage rollout gate: Float truncation shrinks fractional rollout limits · case 05

A 0.29 percent rollout admits only 28 basis points of buckets.

Feature flag rollout bucketing◈ Members↗
FA-73861

Percentage rollout gate: Buckets are reduced into a thousand slots · case 01

Bucket values never exceed 999, so a 10 percent rollout enables every user.

Feature flag rollout bucketing● Open access↗
FA-73862

Percentage rollout gate: Buckets are reduced into a thousand slots · case 02

Bucket values never exceed 999, so a 10 percent rollout enables every user.

Feature flag rollout bucketing◈ Members↗
FA-73863

Percentage rollout gate: Buckets are reduced into a thousand slots · case 03

Bucket values never exceed 999, so a 10 percent rollout enables every user.

Feature flag rollout bucketing◈ Members↗
FA-73864

Percentage rollout gate: Buckets are reduced into a thousand slots · case 04

Bucket values never exceed 999, so a 10 percent rollout enables every user.

Feature flag rollout bucketing◈ Members↗
FA-73865

Percentage rollout gate: Buckets are reduced into a thousand slots · case 05

Bucket values never exceed 999, so a 10 percent rollout enables every user.

Feature flag rollout bucketing◈ Members↗
FA-73866

Weighted variant allocation: Cumulative edges are treated as inclusive · case 01

A bucket equal to an arm boundary is assigned to the earlier arm, over-weighting it by one bucket.

Feature flag rollout bucketing● Open access↗
FA-73867

Weighted variant allocation: Cumulative edges are treated as inclusive · case 02

A bucket equal to an arm boundary is assigned to the earlier arm, over-weighting it by one bucket.

Feature flag rollout bucketing◈ Members↗
FA-73868

Weighted variant allocation: Cumulative edges are treated as inclusive · case 03

A bucket equal to an arm boundary is assigned to the earlier arm, over-weighting it by one bucket.

Feature flag rollout bucketing◈ Members↗
FA-73869

Weighted variant allocation: Cumulative edges are treated as inclusive · case 04

A bucket equal to an arm boundary is assigned to the earlier arm, over-weighting it by one bucket.

Feature flag rollout bucketing◈ Members↗
FA-73870

Weighted variant allocation: Cumulative edges are treated as inclusive · case 05

A bucket equal to an arm boundary is assigned to the earlier arm, over-weighting it by one bucket.

Feature flag rollout bucketing◈ Members↗
FA-73871

Weighted variant allocation: Zero-weight arms participate in allocation · case 01

A variant switched off with weight zero still receives remainder traffic, and negative weights shrink totals.

Feature flag rollout bucketing● Open access↗
FA-73872

Weighted variant allocation: Zero-weight arms participate in allocation · case 02

A variant switched off with weight zero still receives remainder traffic, and negative weights shrink totals.

Feature flag rollout bucketing◈ Members↗
FA-73873

Weighted variant allocation: Zero-weight arms participate in allocation · case 03

A variant switched off with weight zero still receives remainder traffic, and negative weights shrink totals.

Feature flag rollout bucketing◈ Members↗
FA-73874

Weighted variant allocation: Zero-weight arms participate in allocation · case 04

A variant switched off with weight zero still receives remainder traffic, and negative weights shrink totals.

Feature flag rollout bucketing◈ Members↗
FA-73875

Weighted variant allocation: Zero-weight arms participate in allocation · case 05

A variant switched off with weight zero still receives remainder traffic, and negative weights shrink totals.

Feature flag rollout bucketing◈ Members↗
FA-73876

Weighted variant allocation: Buckets past the total receive no variant · case 01

When weights sum below 100 percent, users in the leftover buckets get no variant at all.

Feature flag rollout bucketing● Open access↗
FA-73877

Weighted variant allocation: Buckets past the total receive no variant · case 02

When weights sum below 100 percent, users in the leftover buckets get no variant at all.

Feature flag rollout bucketing◈ Members↗
FA-73878

Weighted variant allocation: Buckets past the total receive no variant · case 03

When weights sum below 100 percent, users in the leftover buckets get no variant at all.

Feature flag rollout bucketing◈ Members↗
FA-73879

Weighted variant allocation: Buckets past the total receive no variant · case 04

When weights sum below 100 percent, users in the leftover buckets get no variant at all.

Feature flag rollout bucketing◈ Members↗
FA-73880

Weighted variant allocation: Buckets past the total receive no variant · case 05

When weights sum below 100 percent, users in the leftover buckets get no variant at all.

Feature flag rollout bucketing◈ Members↗
FA-73881

Weighted variant allocation: Variants are walked alphabetically · case 01

Renaming an arm silently moves which bucket ranges it owns.

Feature flag rollout bucketing● Open access↗
FA-73882

Weighted variant allocation: Variants are walked alphabetically · case 02

Renaming an arm silently moves which bucket ranges it owns.

Feature flag rollout bucketing◈ Members↗
FA-73883

Weighted variant allocation: Variants are walked alphabetically · case 03

Renaming an arm silently moves which bucket ranges it owns.

Feature flag rollout bucketing◈ Members↗
FA-73884

Weighted variant allocation: Variants are walked alphabetically · case 04

Renaming an arm silently moves which bucket ranges it owns.

Feature flag rollout bucketing◈ Members↗
FA-73885

Weighted variant allocation: Variants are walked alphabetically · case 05

Renaming an arm silently moves which bucket ranges it owns.

Feature flag rollout bucketing◈ Members↗
FA-73886

Weighted variant allocation: Fractional weights are truncated to basis points · case 01

A 0.29 percent arm covers only 28 buckets and 33.33 percent splits leak buckets.

Feature flag rollout bucketing● Open access↗
FA-73887

Weighted variant allocation: Fractional weights are truncated to basis points · case 02

A 0.29 percent arm covers only 28 buckets and 33.33 percent splits leak buckets.

Feature flag rollout bucketing◈ Members↗
FA-73888

Weighted variant allocation: Fractional weights are truncated to basis points · case 03

A 0.29 percent arm covers only 28 buckets and 33.33 percent splits leak buckets.

Feature flag rollout bucketing◈ Members↗
FA-73889

Weighted variant allocation: Fractional weights are truncated to basis points · case 04

A 0.29 percent arm covers only 28 buckets and 33.33 percent splits leak buckets.

Feature flag rollout bucketing◈ Members↗
FA-73890

Weighted variant allocation: Fractional weights are truncated to basis points · case 05

A 0.29 percent arm covers only 28 buckets and 33.33 percent splits leak buckets.

Feature flag rollout bucketing◈ Members↗
FA-73891

Flag targeting precedence: Rules are evaluated before individual targets · case 01

A QA engineer added to an individual target list still receives the variation of a broad rule.

Feature flag rollout bucketing● Open access↗
FA-73892

Flag targeting precedence: Rules are evaluated before individual targets · case 02

A QA engineer added to an individual target list still receives the variation of a broad rule.

Feature flag rollout bucketing◈ Members↗
FA-73893

Flag targeting precedence: Rules are evaluated before individual targets · case 03

A QA engineer added to an individual target list still receives the variation of a broad rule.

Feature flag rollout bucketing◈ Members↗
FA-73894

Flag targeting precedence: Rules are evaluated before individual targets · case 04

A QA engineer added to an individual target list still receives the variation of a broad rule.

Feature flag rollout bucketing◈ Members↗
FA-73895

Flag targeting precedence: Rules are evaluated before individual targets · case 05

A QA engineer added to an individual target list still receives the variation of a broad rule.

Feature flag rollout bucketing◈ Members↗
FA-73896

Flag targeting precedence: Negated clauses match users lacking the attribute · case 01

Anonymous users without a plan attribute are served the "not pro" variation.

Feature flag rollout bucketing● Open access↗
FA-73897

Flag targeting precedence: Negated clauses match users lacking the attribute · case 02

Anonymous users without a plan attribute are served the "not pro" variation.

Feature flag rollout bucketing◈ Members↗
FA-73898

Flag targeting precedence: Negated clauses match users lacking the attribute · case 03

Anonymous users without a plan attribute are served the "not pro" variation.

Feature flag rollout bucketing◈ Members↗
FA-73899

Flag targeting precedence: Negated clauses match users lacking the attribute · case 04

Anonymous users without a plan attribute are served the "not pro" variation.

Feature flag rollout bucketing◈ Members↗
FA-73900

Flag targeting precedence: Negated clauses match users lacking the attribute · case 05

Anonymous users without a plan attribute are served the "not pro" variation.

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 ↗