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

Leaky bucket meter: denied request still pours water · case 01

Rejected traffic keeps the bucket full, so a throttled client can never recover while it retries.

Rate limiter algorithms● Open access↗
FA-73502

Leaky bucket meter: denied request still pours water · case 02

Rejected traffic keeps the bucket full, so a throttled client can never recover while it retries.

Rate limiter algorithms◈ Members↗
FA-73503

Leaky bucket meter: denied request still pours water · case 03

Rejected traffic keeps the bucket full, so a throttled client can never recover while it retries.

Rate limiter algorithms◈ Members↗
FA-73504

Leaky bucket meter: denied request still pours water · case 04

Rejected traffic keeps the bucket full, so a throttled client can never recover while it retries.

Rate limiter algorithms◈ Members↗
FA-73505

Leaky bucket meter: denied request still pours water · case 05

Rejected traffic keeps the bucket full, so a throttled client can never recover while it retries.

Rate limiter algorithms◈ Members↗
FA-73506

Leaky bucket queue shaper: departure scheduled before arrival · case 01

After an idle period requests are reported as departing before they arrived.

Rate limiter algorithms● Open access↗
FA-73507

Leaky bucket queue shaper: departure scheduled before arrival · case 02

After an idle period requests are reported as departing before they arrived.

Rate limiter algorithms◈ Members↗
FA-73508

Leaky bucket queue shaper: departure scheduled before arrival · case 03

After an idle period requests are reported as departing before they arrived.

Rate limiter algorithms◈ Members↗
FA-73509

Leaky bucket queue shaper: departure scheduled before arrival · case 04

After an idle period requests are reported as departing before they arrived.

Rate limiter algorithms◈ Members↗
FA-73510

Leaky bucket queue shaper: departure scheduled before arrival · case 05

After an idle period requests are reported as departing before they arrived.

Rate limiter algorithms◈ Members↗
FA-73511

Leaky bucket queue shaper: request departing now counted as queued · case 01

A request arriving at the same instant another departs is dropped.

Rate limiter algorithms● Open access↗
FA-73512

Leaky bucket queue shaper: request departing now counted as queued · case 02

A request arriving at the same instant another departs is dropped.

Rate limiter algorithms◈ Members↗
FA-73513

Leaky bucket queue shaper: request departing now counted as queued · case 03

A request arriving at the same instant another departs is dropped.

Rate limiter algorithms◈ Members↗
FA-73514

Leaky bucket queue shaper: request departing now counted as queued · case 04

A request arriving at the same instant another departs is dropped.

Rate limiter algorithms◈ Members↗
FA-73515

Leaky bucket queue shaper: request departing now counted as queued · case 05

A request arriving at the same instant another departs is dropped.

Rate limiter algorithms◈ Members↗
FA-73516

Leaky bucket queue shaper: next slot computed from arrival · case 01

Queued requests are spaced from their arrival rather than from the previous departure, compressing the output rate.

Rate limiter algorithms● Open access↗
FA-73517

Leaky bucket queue shaper: next slot computed from arrival · case 02

Queued requests are spaced from their arrival rather than from the previous departure, compressing the output rate.

Rate limiter algorithms◈ Members↗
FA-73518

Leaky bucket queue shaper: next slot computed from arrival · case 03

Queued requests are spaced from their arrival rather than from the previous departure, compressing the output rate.

Rate limiter algorithms◈ Members↗
FA-73519

Leaky bucket queue shaper: next slot computed from arrival · case 04

Queued requests are spaced from their arrival rather than from the previous departure, compressing the output rate.

Rate limiter algorithms◈ Members↗
FA-73520

Leaky bucket queue shaper: next slot computed from arrival · case 05

Queued requests are spaced from their arrival rather than from the previous departure, compressing the output rate.

Rate limiter algorithms◈ Members↗
FA-73521

Leaky bucket queue shaper: dropped request reserves a slot · case 01

Each drop delays every later accepted request by one interval.

Rate limiter algorithms● Open access↗
FA-73522

Leaky bucket queue shaper: dropped request reserves a slot · case 02

Each drop delays every later accepted request by one interval.

Rate limiter algorithms◈ Members↗
FA-73523

Leaky bucket queue shaper: dropped request reserves a slot · case 03

Each drop delays every later accepted request by one interval.

Rate limiter algorithms◈ Members↗
FA-73524

Leaky bucket queue shaper: dropped request reserves a slot · case 04

Each drop delays every later accepted request by one interval.

Rate limiter algorithms◈ Members↗
FA-73525

Leaky bucket queue shaper: dropped request reserves a slot · case 05

Each drop delays every later accepted request by one interval.

Rate limiter algorithms◈ Members↗
FA-73526

Hierarchical tenant and global token buckets: tenant charged when the global bucket denies · case 01

A tenant loses its own tokens for requests the shared limit rejected.

Rate limiter algorithms● Open access↗
FA-73527

Hierarchical tenant and global token buckets: tenant charged when the global bucket denies · case 02

A tenant loses its own tokens for requests the shared limit rejected.

Rate limiter algorithms◈ Members↗
FA-73528

Hierarchical tenant and global token buckets: tenant charged when the global bucket denies · case 03

A tenant loses its own tokens for requests the shared limit rejected.

Rate limiter algorithms◈ Members↗
FA-73529

Hierarchical tenant and global token buckets: tenant charged when the global bucket denies · case 04

A tenant loses its own tokens for requests the shared limit rejected.

Rate limiter algorithms◈ Members↗
FA-73530

Hierarchical tenant and global token buckets: tenant charged when the global bucket denies · case 05

A tenant loses its own tokens for requests the shared limit rejected.

Rate limiter algorithms◈ Members↗
FA-73531

Hierarchical tenant and global token buckets: global reason reported before tenant reason · case 01

Tenants over their own limit are told the shared service is saturated.

Rate limiter algorithms● Open access↗
FA-73532

Hierarchical tenant and global token buckets: global reason reported before tenant reason · case 02

Tenants over their own limit are told the shared service is saturated.

Rate limiter algorithms◈ Members↗
FA-73533

Hierarchical tenant and global token buckets: global reason reported before tenant reason · case 03

Tenants over their own limit are told the shared service is saturated.

Rate limiter algorithms◈ Members↗
FA-73534

Hierarchical tenant and global token buckets: global reason reported before tenant reason · case 04

Tenants over their own limit are told the shared service is saturated.

Rate limiter algorithms◈ Members↗
FA-73535

Hierarchical tenant and global token buckets: global reason reported before tenant reason · case 05

Tenants over their own limit are told the shared service is saturated.

Rate limiter algorithms◈ Members↗
FA-73536

Hierarchical tenant and global token buckets: tenant refills from the global clock · case 01

A tenant idle while others were active never refills, because the elapsed time is measured from anyone's last request.

Rate limiter algorithms● Open access↗
FA-73537

Hierarchical tenant and global token buckets: tenant refills from the global clock · case 02

A tenant idle while others were active never refills, because the elapsed time is measured from anyone's last request.

Rate limiter algorithms◈ Members↗
FA-73538

Hierarchical tenant and global token buckets: tenant refills from the global clock · case 03

A tenant idle while others were active never refills, because the elapsed time is measured from anyone's last request.

Rate limiter algorithms◈ Members↗
FA-73539

Hierarchical tenant and global token buckets: tenant refills from the global clock · case 04

A tenant idle while others were active never refills, because the elapsed time is measured from anyone's last request.

Rate limiter algorithms◈ Members↗
FA-73540

Hierarchical tenant and global token buckets: tenant refills from the global clock · case 05

A tenant idle while others were active never refills, because the elapsed time is measured from anyone's last request.

Rate limiter algorithms◈ Members↗
FA-73541

Hierarchical tenant and global token buckets: new tenant starts empty · case 01

A tenant's first request is denied although it has never used its quota.

Rate limiter algorithms● Open access↗
FA-73542

Hierarchical tenant and global token buckets: new tenant starts empty · case 02

A tenant's first request is denied although it has never used its quota.

Rate limiter algorithms◈ Members↗
FA-73543

Hierarchical tenant and global token buckets: new tenant starts empty · case 03

A tenant's first request is denied although it has never used its quota.

Rate limiter algorithms◈ Members↗
FA-73544

Hierarchical tenant and global token buckets: new tenant starts empty · case 04

A tenant's first request is denied although it has never used its quota.

Rate limiter algorithms◈ Members↗
FA-73545

Hierarchical tenant and global token buckets: new tenant starts empty · case 05

A tenant's first request is denied although it has never used its quota.

Rate limiter algorithms◈ Members↗
FA-73546

Hierarchical tenant and global token buckets: global bucket capped at tenant capacity · case 01

The shared bucket can never hold more than one tenant's capacity, throttling the fleet.

Rate limiter algorithms● Open access↗
FA-73547

Hierarchical tenant and global token buckets: global bucket capped at tenant capacity · case 02

The shared bucket can never hold more than one tenant's capacity, throttling the fleet.

Rate limiter algorithms◈ Members↗
FA-73548

Hierarchical tenant and global token buckets: global bucket capped at tenant capacity · case 03

The shared bucket can never hold more than one tenant's capacity, throttling the fleet.

Rate limiter algorithms◈ Members↗
FA-73549

Hierarchical tenant and global token buckets: global bucket capped at tenant capacity · case 04

The shared bucket can never hold more than one tenant's capacity, throttling the fleet.

Rate limiter algorithms◈ Members↗
FA-73550

Hierarchical tenant and global token buckets: global bucket capped at tenant capacity · case 05

The shared bucket can never hold more than one tenant's capacity, throttling the fleet.

Rate limiter algorithms◈ Members↗
FA-73551

AIMD adaptive concurrency limit: additive increase per acknowledgement · case 01

The limit grows by one per success instead of one per window, overshooting capacity quickly.

Rate limiter algorithms● Open access↗
FA-73552

AIMD adaptive concurrency limit: additive increase per acknowledgement · case 02

The limit grows by one per success instead of one per window, overshooting capacity quickly.

Rate limiter algorithms◈ Members↗
FA-73553

AIMD adaptive concurrency limit: additive increase per acknowledgement · case 03

The limit grows by one per success instead of one per window, overshooting capacity quickly.

Rate limiter algorithms◈ Members↗
FA-73554

AIMD adaptive concurrency limit: additive increase per acknowledgement · case 04

The limit grows by one per success instead of one per window, overshooting capacity quickly.

Rate limiter algorithms◈ Members↗
FA-73555

AIMD adaptive concurrency limit: additive increase per acknowledgement · case 05

The limit grows by one per success instead of one per window, overshooting capacity quickly.

Rate limiter algorithms◈ Members↗
FA-73556

AIMD adaptive concurrency limit: multiplicative decrease ignores the minimum · case 01

Repeated losses drive the limit below the configured minimum, stalling all traffic.

Rate limiter algorithms● Open access↗
FA-73557

AIMD adaptive concurrency limit: multiplicative decrease ignores the minimum · case 02

Repeated losses drive the limit below the configured minimum, stalling all traffic.

Rate limiter algorithms◈ Members↗
FA-73558

AIMD adaptive concurrency limit: multiplicative decrease ignores the minimum · case 03

Repeated losses drive the limit below the configured minimum, stalling all traffic.

Rate limiter algorithms◈ Members↗
FA-73559

AIMD adaptive concurrency limit: multiplicative decrease ignores the minimum · case 04

Repeated losses drive the limit below the configured minimum, stalling all traffic.

Rate limiter algorithms◈ Members↗
FA-73560

AIMD adaptive concurrency limit: multiplicative decrease ignores the minimum · case 05

Repeated losses drive the limit below the configured minimum, stalling all traffic.

Rate limiter algorithms◈ Members↗
FA-73561

AIMD adaptive concurrency limit: increase not capped at the maximum · case 01

The limit grows past the configured maximum.

Rate limiter algorithms● Open access↗
FA-73562

AIMD adaptive concurrency limit: increase not capped at the maximum · case 02

The limit grows past the configured maximum.

Rate limiter algorithms◈ Members↗
FA-73563

AIMD adaptive concurrency limit: increase not capped at the maximum · case 03

The limit grows past the configured maximum.

Rate limiter algorithms◈ Members↗
FA-73564

AIMD adaptive concurrency limit: increase not capped at the maximum · case 04

The limit grows past the configured maximum.

Rate limiter algorithms◈ Members↗
FA-73565

AIMD adaptive concurrency limit: increase not capped at the maximum · case 05

The limit grows past the configured maximum.

Rate limiter algorithms◈ Members↗
FA-73566

AIMD adaptive concurrency limit: successes do not count down the cooldown · case 01

After one loss the limiter ignores later losses until more losses arrive, reacting too slowly.

Rate limiter algorithms● Open access↗
FA-73567

AIMD adaptive concurrency limit: successes do not count down the cooldown · case 02

After one loss the limiter ignores later losses until more losses arrive, reacting too slowly.

Rate limiter algorithms◈ Members↗
FA-73568

AIMD adaptive concurrency limit: successes do not count down the cooldown · case 03

After one loss the limiter ignores later losses until more losses arrive, reacting too slowly.

Rate limiter algorithms◈ Members↗
FA-73569

AIMD adaptive concurrency limit: successes do not count down the cooldown · case 04

After one loss the limiter ignores later losses until more losses arrive, reacting too slowly.

Rate limiter algorithms◈ Members↗
FA-73570

AIMD adaptive concurrency limit: successes do not count down the cooldown · case 05

After one loss the limiter ignores later losses until more losses arrive, reacting too slowly.

Rate limiter algorithms◈ Members↗
FA-73571

AIMD adaptive concurrency limit: losses during cooldown do not count it down · case 01

A sustained burst of losses keeps the limiter in cooldown and prevents any further decrease.

Rate limiter algorithms● Open access↗
FA-73572

AIMD adaptive concurrency limit: losses during cooldown do not count it down · case 02

A sustained burst of losses keeps the limiter in cooldown and prevents any further decrease.

Rate limiter algorithms◈ Members↗
FA-73573

AIMD adaptive concurrency limit: losses during cooldown do not count it down · case 03

A sustained burst of losses keeps the limiter in cooldown and prevents any further decrease.

Rate limiter algorithms◈ Members↗
FA-73574

AIMD adaptive concurrency limit: losses during cooldown do not count it down · case 04

A sustained burst of losses keeps the limiter in cooldown and prevents any further decrease.

Rate limiter algorithms◈ Members↗
FA-73575

AIMD adaptive concurrency limit: losses during cooldown do not count it down · case 05

A sustained burst of losses keeps the limiter in cooldown and prevents any further decrease.

Rate limiter algorithms◈ Members↗
FA-73576

AIMD adaptive concurrency limit: reported limit rounded to nearest · case 01

The advertised concurrency exceeds the fractional limit.

Rate limiter algorithms● Open access↗
FA-73577

AIMD adaptive concurrency limit: reported limit rounded to nearest · case 02

The advertised concurrency exceeds the fractional limit.

Rate limiter algorithms◈ Members↗
FA-73578

AIMD adaptive concurrency limit: reported limit rounded to nearest · case 03

The advertised concurrency exceeds the fractional limit.

Rate limiter algorithms◈ Members↗
FA-73579

AIMD adaptive concurrency limit: reported limit rounded to nearest · case 04

The advertised concurrency exceeds the fractional limit.

Rate limiter algorithms◈ Members↗
FA-73580

AIMD adaptive concurrency limit: reported limit rounded to nearest · case 05

The advertised concurrency exceeds the fractional limit.

Rate limiter algorithms◈ Members↗
FA-73581

Concurrency limiter with expiring leases: lease still held at its expiry instant · case 01

A slot stays occupied one tick past its lease, rejecting a waiting acquirer.

Rate limiter algorithms● Open access↗
FA-73582

Concurrency limiter with expiring leases: lease still held at its expiry instant · case 02

A slot stays occupied one tick past its lease, rejecting a waiting acquirer.

Rate limiter algorithms◈ Members↗
FA-73583

Concurrency limiter with expiring leases: lease still held at its expiry instant · case 03

A slot stays occupied one tick past its lease, rejecting a waiting acquirer.

Rate limiter algorithms◈ Members↗
FA-73584

Concurrency limiter with expiring leases: lease still held at its expiry instant · case 04

A slot stays occupied one tick past its lease, rejecting a waiting acquirer.

Rate limiter algorithms◈ Members↗
FA-73585

Concurrency limiter with expiring leases: lease still held at its expiry instant · case 05

A slot stays occupied one tick past its lease, rejecting a waiting acquirer.

Rate limiter algorithms◈ Members↗
FA-73586

Concurrency limiter with expiring leases: unknown release frees someone else's slot · case 01

A stray release from a client that never acquired evicts the oldest legitimate holder.

Rate limiter algorithms● Open access↗
FA-73587

Concurrency limiter with expiring leases: unknown release frees someone else's slot · case 02

A stray release from a client that never acquired evicts the oldest legitimate holder.

Rate limiter algorithms◈ Members↗
FA-73588

Concurrency limiter with expiring leases: unknown release frees someone else's slot · case 03

A stray release from a client that never acquired evicts the oldest legitimate holder.

Rate limiter algorithms◈ Members↗
FA-73589

Concurrency limiter with expiring leases: unknown release frees someone else's slot · case 04

A stray release from a client that never acquired evicts the oldest legitimate holder.

Rate limiter algorithms◈ Members↗
FA-73590

Concurrency limiter with expiring leases: unknown release frees someone else's slot · case 05

A stray release from a client that never acquired evicts the oldest legitimate holder.

Rate limiter algorithms◈ Members↗
FA-73591

Concurrency limiter with expiring leases: duplicate acquire renews the lease · case 01

A holder re-acquiring extends its lease indefinitely and is told it was granted a new slot.

Rate limiter algorithms● Open access↗
FA-73592

Concurrency limiter with expiring leases: duplicate acquire renews the lease · case 02

A holder re-acquiring extends its lease indefinitely and is told it was granted a new slot.

Rate limiter algorithms◈ Members↗
FA-73593

Concurrency limiter with expiring leases: duplicate acquire renews the lease · case 03

A holder re-acquiring extends its lease indefinitely and is told it was granted a new slot.

Rate limiter algorithms◈ Members↗
FA-73594

Concurrency limiter with expiring leases: duplicate acquire renews the lease · case 04

A holder re-acquiring extends its lease indefinitely and is told it was granted a new slot.

Rate limiter algorithms◈ Members↗
FA-73595

Concurrency limiter with expiring leases: duplicate acquire renews the lease · case 05

A holder re-acquiring extends its lease indefinitely and is told it was granted a new slot.

Rate limiter algorithms◈ Members↗
FA-73596

Concurrency limiter with expiring leases: expiry runs only on acquire · case 01

Releasing an already expired lease is reported as a successful release.

Rate limiter algorithms● Open access↗
FA-73597

Concurrency limiter with expiring leases: expiry runs only on acquire · case 02

Releasing an already expired lease is reported as a successful release.

Rate limiter algorithms◈ Members↗
FA-73598

Concurrency limiter with expiring leases: expiry runs only on acquire · case 03

Releasing an already expired lease is reported as a successful release.

Rate limiter algorithms◈ Members↗
FA-73599

Concurrency limiter with expiring leases: expiry runs only on acquire · case 04

Releasing an already expired lease is reported as a successful release.

Rate limiter algorithms◈ Members↗
FA-73600

Concurrency limiter with expiring leases: expiry runs only on acquire · case 05

Releasing an already expired lease is reported as a successful release.

Rate limiter algorithms◈ 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 ↗