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 ↗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
Distributed limiter with leased quota chunks: returned lease not credited · case 01
Quota returned by draining nodes is lost for the rest of the window.
Distributed limiter with leased quota chunks: returned lease not credited · case 02
Quota returned by draining nodes is lost for the rest of the window.
Distributed limiter with leased quota chunks: returned lease not credited · case 03
Quota returned by draining nodes is lost for the rest of the window.
Distributed limiter with leased quota chunks: returned lease not credited · case 04
Quota returned by draining nodes is lost for the rest of the window.
Distributed limiter with leased quota chunks: returned lease not credited · case 05
Quota returned by draining nodes is lost for the rest of the window.
Distributed limiter with leased quota chunks: leases survive the window rollover · case 01
Nodes spend last window's leftover lease on top of the new window's full quota.
Distributed limiter with leased quota chunks: leases survive the window rollover · case 02
Nodes spend last window's leftover lease on top of the new window's full quota.
Distributed limiter with leased quota chunks: leases survive the window rollover · case 03
Nodes spend last window's leftover lease on top of the new window's full quota.
Distributed limiter with leased quota chunks: leases survive the window rollover · case 04
Nodes spend last window's leftover lease on top of the new window's full quota.
Distributed limiter with leased quota chunks: leases survive the window rollover · case 05
Nodes spend last window's leftover lease on top of the new window's full quota.
Distributed limiter with leased quota chunks: exhausted lease never refetched · case 01
A node that used up its first chunk denies everything for the rest of the window although quota remains.
Distributed limiter with leased quota chunks: exhausted lease never refetched · case 02
A node that used up its first chunk denies everything for the rest of the window although quota remains.
Distributed limiter with leased quota chunks: exhausted lease never refetched · case 03
A node that used up its first chunk denies everything for the rest of the window although quota remains.
Distributed limiter with leased quota chunks: exhausted lease never refetched · case 04
A node that used up its first chunk denies everything for the rest of the window although quota remains.
Distributed limiter with leased quota chunks: exhausted lease never refetched · case 05
A node that used up its first chunk denies everything for the rest of the window although quota remains.
Distributed limiter with leased quota chunks: grant not debited from the coordinator · case 01
Every node can lease the whole quota, multiplying the global limit.
Distributed limiter with leased quota chunks: grant not debited from the coordinator · case 02
Every node can lease the whole quota, multiplying the global limit.
Distributed limiter with leased quota chunks: grant not debited from the coordinator · case 03
Every node can lease the whole quota, multiplying the global limit.
Distributed limiter with leased quota chunks: grant not debited from the coordinator · case 04
Every node can lease the whole quota, multiplying the global limit.
Distributed limiter with leased quota chunks: grant not debited from the coordinator · case 05
Every node can lease the whole quota, multiplying the global limit.
Token bucket with bounded overdraft: no overdraft allowed · case 01
Expensive requests are refused until the bucket fully covers them, starving large callers.
Token bucket with bounded overdraft: no overdraft allowed · case 02
Expensive requests are refused until the bucket fully covers them, starving large callers.
Token bucket with bounded overdraft: no overdraft allowed · case 03
Expensive requests are refused until the bucket fully covers them, starving large callers.
Token bucket with bounded overdraft: no overdraft allowed · case 04
Expensive requests are refused until the bucket fully covers them, starving large callers.
Token bucket with bounded overdraft: no overdraft allowed · case 05
Expensive requests are refused until the bucket fully covers them, starving large callers.
Token bucket with bounded overdraft: debt bounded by capacity instead of the debt limit · case 01
The overdraft limit follows the bucket size rather than the configured debt bound.
Token bucket with bounded overdraft: debt bounded by capacity instead of the debt limit · case 02
The overdraft limit follows the bucket size rather than the configured debt bound.
Token bucket with bounded overdraft: debt bounded by capacity instead of the debt limit · case 03
The overdraft limit follows the bucket size rather than the configured debt bound.
Token bucket with bounded overdraft: debt bounded by capacity instead of the debt limit · case 04
The overdraft limit follows the bucket size rather than the configured debt bound.
Token bucket with bounded overdraft: debt bounded by capacity instead of the debt limit · case 05
The overdraft limit follows the bucket size rather than the configured debt bound.
Token bucket with bounded overdraft: refill forgives outstanding debt · case 01
Overdrawn clients start refilling from zero, so debt is never repaid.
Token bucket with bounded overdraft: refill forgives outstanding debt · case 02
Overdrawn clients start refilling from zero, so debt is never repaid.
Token bucket with bounded overdraft: refill forgives outstanding debt · case 03
Overdrawn clients start refilling from zero, so debt is never repaid.
Token bucket with bounded overdraft: refill forgives outstanding debt · case 04
Overdrawn clients start refilling from zero, so debt is never repaid.
Token bucket with bounded overdraft: refill forgives outstanding debt · case 05
Overdrawn clients start refilling from zero, so debt is never repaid.
Token bucket with bounded overdraft: refill clock advances only on admission · case 01
After a denial the same interval is refilled again at the next request.
Token bucket with bounded overdraft: refill clock advances only on admission · case 02
After a denial the same interval is refilled again at the next request.
Token bucket with bounded overdraft: refill clock advances only on admission · case 03
After a denial the same interval is refilled again at the next request.
Token bucket with bounded overdraft: refill clock advances only on admission · case 04
After a denial the same interval is refilled again at the next request.
Token bucket with bounded overdraft: refill clock advances only on admission · case 05
After a denial the same interval is refilled again at the next request.
Rate limiter with a bounded per-key state table: throttled key evicted · case 01
An attacker cycles through new keys to evict its own throttled entry and receive a full bucket.
Rate limiter with a bounded per-key state table: throttled key evicted · case 02
An attacker cycles through new keys to evict its own throttled entry and receive a full bucket.
Rate limiter with a bounded per-key state table: throttled key evicted · case 03
An attacker cycles through new keys to evict its own throttled entry and receive a full bucket.
Rate limiter with a bounded per-key state table: throttled key evicted · case 04
An attacker cycles through new keys to evict its own throttled entry and receive a full bucket.
Rate limiter with a bounded per-key state table: throttled key evicted · case 05
An attacker cycles through new keys to evict its own throttled entry and receive a full bucket.
Rate limiter with a bounded per-key state table: hits do not refresh recency · case 01
A frequently used key is evicted as if it were stale.
Rate limiter with a bounded per-key state table: hits do not refresh recency · case 02
A frequently used key is evicted as if it were stale.
Rate limiter with a bounded per-key state table: hits do not refresh recency · case 03
A frequently used key is evicted as if it were stale.
Rate limiter with a bounded per-key state table: hits do not refresh recency · case 04
A frequently used key is evicted as if it were stale.
Rate limiter with a bounded per-key state table: hits do not refresh recency · case 05
A frequently used key is evicted as if it were stale.
Rate limiter with a bounded per-key state table: new key starts empty · case 01
A new client is denied its first request.
Rate limiter with a bounded per-key state table: new key starts empty · case 02
A new client is denied its first request.
Rate limiter with a bounded per-key state table: new key starts empty · case 03
A new client is denied its first request.
Rate limiter with a bounded per-key state table: new key starts empty · case 04
A new client is denied its first request.
Rate limiter with a bounded per-key state table: new key starts empty · case 05
A new client is denied its first request.
Rate limiter with a bounded per-key state table: any key with tokens counts as idle · case 01
A partially throttled key is evicted and its restrictions are forgotten.
Rate limiter with a bounded per-key state table: any key with tokens counts as idle · case 02
A partially throttled key is evicted and its restrictions are forgotten.
Rate limiter with a bounded per-key state table: any key with tokens counts as idle · case 03
A partially throttled key is evicted and its restrictions are forgotten.
Rate limiter with a bounded per-key state table: any key with tokens counts as idle · case 04
A partially throttled key is evicted and its restrictions are forgotten.
Rate limiter with a bounded per-key state table: any key with tokens counts as idle · case 05
A partially throttled key is evicted and its restrictions are forgotten.
EWMA arrival-rate throttle: decay constant treated as seconds · case 01
The estimate barely reacts to new arrivals and throttling kicks in minutes late.
EWMA arrival-rate throttle: decay constant treated as seconds · case 02
The estimate barely reacts to new arrivals and throttling kicks in minutes late.
EWMA arrival-rate throttle: decay constant treated as seconds · case 03
The estimate barely reacts to new arrivals and throttling kicks in minutes late.
EWMA arrival-rate throttle: decay constant treated as seconds · case 04
The estimate barely reacts to new arrivals and throttling kicks in minutes late.
EWMA arrival-rate throttle: decay constant treated as seconds · case 05
The estimate barely reacts to new arrivals and throttling kicks in minutes late.
EWMA arrival-rate throttle: instantaneous rate per millisecond · case 01
Estimates are a thousand times too small and nothing is ever throttled.
EWMA arrival-rate throttle: instantaneous rate per millisecond · case 02
Estimates are a thousand times too small and nothing is ever throttled.
EWMA arrival-rate throttle: instantaneous rate per millisecond · case 03
Estimates are a thousand times too small and nothing is ever throttled.
EWMA arrival-rate throttle: instantaneous rate per millisecond · case 04
Estimates are a thousand times too small and nothing is ever throttled.
EWMA arrival-rate throttle: instantaneous rate per millisecond · case 05
Estimates are a thousand times too small and nothing is ever throttled.
EWMA arrival-rate throttle: simultaneous arrivals treated as one millisecond apart · case 01
Two requests with the same timestamp spike the estimate to 1000 requests per second.
EWMA arrival-rate throttle: simultaneous arrivals treated as one millisecond apart · case 02
Two requests with the same timestamp spike the estimate to 1000 requests per second.
EWMA arrival-rate throttle: simultaneous arrivals treated as one millisecond apart · case 03
Two requests with the same timestamp spike the estimate to 1000 requests per second.
EWMA arrival-rate throttle: simultaneous arrivals treated as one millisecond apart · case 04
Two requests with the same timestamp spike the estimate to 1000 requests per second.
EWMA arrival-rate throttle: simultaneous arrivals treated as one millisecond apart · case 05
Two requests with the same timestamp spike the estimate to 1000 requests per second.
EWMA arrival-rate throttle: blend weights swapped · case 01
Long gaps keep the old rate while short gaps discard it, inverting the smoothing.
EWMA arrival-rate throttle: blend weights swapped · case 02
Long gaps keep the old rate while short gaps discard it, inverting the smoothing.
EWMA arrival-rate throttle: blend weights swapped · case 03
Long gaps keep the old rate while short gaps discard it, inverting the smoothing.
EWMA arrival-rate throttle: blend weights swapped · case 04
Long gaps keep the old rate while short gaps discard it, inverting the smoothing.
EWMA arrival-rate throttle: blend weights swapped · case 05
Long gaps keep the old rate while short gaps discard it, inverting the smoothing.
EWMA arrival-rate throttle: late arrival rewinds the clock · case 01
After a late arrival the next interval is measured from the past and appears artificially long or short.
EWMA arrival-rate throttle: late arrival rewinds the clock · case 02
After a late arrival the next interval is measured from the past and appears artificially long or short.
EWMA arrival-rate throttle: late arrival rewinds the clock · case 03
After a late arrival the next interval is measured from the past and appears artificially long or short.
EWMA arrival-rate throttle: late arrival rewinds the clock · case 04
After a late arrival the next interval is measured from the past and appears artificially long or short.
EWMA arrival-rate throttle: late arrival rewinds the clock · case 05
After a late arrival the next interval is measured from the past and appears artificially long or short.
Rolling window over a ring of sub-window counters: reused slot keeps a lapped count · case 01
Traffic from one full window ago is counted again when its slot comes around.
Rolling window over a ring of sub-window counters: reused slot keeps a lapped count · case 02
Traffic from one full window ago is counted again when its slot comes around.
Rolling window over a ring of sub-window counters: reused slot keeps a lapped count · case 03
Traffic from one full window ago is counted again when its slot comes around.
Rolling window over a ring of sub-window counters: reused slot keeps a lapped count · case 04
Traffic from one full window ago is counted again when its slot comes around.
Rolling window over a ring of sub-window counters: reused slot keeps a lapped count · case 05
Traffic from one full window ago is counted again when its slot comes around.
Rolling window over a ring of sub-window counters: rolling total includes expired slots · case 01
After an idle period, slots from long ago still count toward the limit.
Rolling window over a ring of sub-window counters: rolling total includes expired slots · case 02
After an idle period, slots from long ago still count toward the limit.
Rolling window over a ring of sub-window counters: rolling total includes expired slots · case 03
After an idle period, slots from long ago still count toward the limit.
Rolling window over a ring of sub-window counters: rolling total includes expired slots · case 04
After an idle period, slots from long ago still count toward the limit.
Rolling window over a ring of sub-window counters: rolling total includes expired slots · case 05
After an idle period, slots from long ago still count toward the limit.
Rolling window over a ring of sub-window counters: slot chosen from raw milliseconds · case 01
Requests in the same sub-window scatter across slots and reset each other.
Rolling window over a ring of sub-window counters: slot chosen from raw milliseconds · case 02
Requests in the same sub-window scatter across slots and reset each other.
Rolling window over a ring of sub-window counters: slot chosen from raw milliseconds · case 03
Requests in the same sub-window scatter across slots and reset each other.
Rolling window over a ring of sub-window counters: slot chosen from raw milliseconds · case 04
Requests in the same sub-window scatter across slots and reset each other.
Rolling window over a ring of sub-window counters: slot chosen from raw milliseconds · case 05
Requests in the same sub-window scatter across slots and reset each other.
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 ↗