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

Generators: generator survives an uncaught throw · case 01

After throw() propagates out, next() resumes the dead frame and faults.

Bytecode virtual machines● Open access↗
FA-90202

Generators: generator survives an uncaught throw · case 02

After throw() propagates out, next() resumes the dead frame and faults.

Bytecode virtual machines◈ Members↗
FA-90203

Generators: generator survives an uncaught throw · case 03

After throw() propagates out, next() resumes the dead frame and faults.

Bytecode virtual machines◈ Members↗
FA-90204

Generators: generator survives an uncaught throw · case 04

After throw() propagates out, next() resumes the dead frame and faults.

Bytecode virtual machines◈ Members↗
FA-90205

Generators: generator survives an uncaught throw · case 05

After throw() propagates out, next() resumes the dead frame and faults.

Bytecode virtual machines◈ Members↗
FA-90206

Generators: yielded value left on the operand stack · case 01

Arithmetic after resumption combines the sent value with the stale yielded value.

Bytecode virtual machines● Open access↗
FA-90207

Generators: yielded value left on the operand stack · case 02

Arithmetic after resumption combines the sent value with the stale yielded value.

Bytecode virtual machines◈ Members↗
FA-90208

Generators: yielded value left on the operand stack · case 03

Arithmetic after resumption combines the sent value with the stale yielded value.

Bytecode virtual machines◈ Members↗
FA-90209

Generators: yielded value left on the operand stack · case 04

Arithmetic after resumption combines the sent value with the stale yielded value.

Bytecode virtual machines◈ Members↗
FA-90210

Generators: yielded value left on the operand stack · case 05

Arithmetic after resumption combines the sent value with the stale yielded value.

Bytecode virtual machines◈ Members↗
FA-90211

Peephole optimizer: folds to -32768 refused · case 01

Constant expressions producing the int16 minimum are left unfolded.

Bytecode virtual machines● Open access↗
FA-90212

Peephole optimizer: folds to -32768 refused · case 02

Constant expressions producing the int16 minimum are left unfolded.

Bytecode virtual machines◈ Members↗
FA-90213

Peephole optimizer: folds to -32768 refused · case 03

Constant expressions producing the int16 minimum are left unfolded.

Bytecode virtual machines◈ Members↗
FA-90214

Peephole optimizer: folds to -32768 refused · case 04

Constant expressions producing the int16 minimum are left unfolded.

Bytecode virtual machines◈ Members↗
FA-90215

Peephole optimizer: folds to -32768 refused · case 05

Constant expressions producing the int16 minimum are left unfolded.

Bytecode virtual machines◈ Members↗
FA-90216

Peephole optimizer: any jump followed by a label deleted · case 01

A jmp that skips a labelled block is removed, so the skipped code now executes.

Bytecode virtual machines● Open access↗
FA-90217

Peephole optimizer: any jump followed by a label deleted · case 02

A jmp that skips a labelled block is removed, so the skipped code now executes.

Bytecode virtual machines◈ Members↗
FA-90218

Peephole optimizer: any jump followed by a label deleted · case 03

A jmp that skips a labelled block is removed, so the skipped code now executes.

Bytecode virtual machines◈ Members↗
FA-90219

Peephole optimizer: any jump followed by a label deleted · case 04

A jmp that skips a labelled block is removed, so the skipped code now executes.

Bytecode virtual machines◈ Members↗
FA-90220

Peephole optimizer: any jump followed by a label deleted · case 05

A jmp that skips a labelled block is removed, so the skipped code now executes.

Bytecode virtual machines◈ Members↗
FA-90221

Peephole optimizer: code after jmp kept alive · case 01

Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.

Bytecode virtual machines● Open access↗
FA-90222

Peephole optimizer: code after jmp kept alive · case 02

Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.

Bytecode virtual machines◈ Members↗
FA-90223

Peephole optimizer: code after jmp kept alive · case 03

Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.

Bytecode virtual machines◈ Members↗
FA-90224

Peephole optimizer: code after jmp kept alive · case 04

Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.

Bytecode virtual machines◈ Members↗
FA-90225

Peephole optimizer: code after jmp kept alive · case 05

Unreachable instructions after unconditional jumps survive and block jmp-to-next removal.

Bytecode virtual machines◈ Members↗
FA-90226

Peephole optimizer: division folded with floor semantics · case 01

Folded code computes -9 / 2 as -5 while the interpreter computes -4.

Bytecode virtual machines● Open access↗
FA-90227

Peephole optimizer: division folded with floor semantics · case 02

Folded code computes -9 / 2 as -5 while the interpreter computes -4.

Bytecode virtual machines◈ Members↗
FA-90228

Peephole optimizer: division folded with floor semantics · case 03

Folded code computes -9 / 2 as -5 while the interpreter computes -4.

Bytecode virtual machines◈ Members↗
FA-90229

Peephole optimizer: division folded with floor semantics · case 04

Folded code computes -9 / 2 as -5 while the interpreter computes -4.

Bytecode virtual machines◈ Members↗
FA-90230

Peephole optimizer: division folded with floor semantics · case 05

Folded code computes -9 / 2 as -5 while the interpreter computes -4.

Bytecode virtual machines◈ Members↗
FA-90231

Numeric for loop: float limits truncated toward zero · case 01

for i = -5, -2.5 runs to -2, one iteration past the limit.

Bytecode virtual machines● Open access↗
FA-90232

Numeric for loop: float limits truncated toward zero · case 02

for i = -5, -2.5 runs to -2, one iteration past the limit.

Bytecode virtual machines◈ Members↗
FA-90233

Numeric for loop: float limits truncated toward zero · case 03

for i = -5, -2.5 runs to -2, one iteration past the limit.

Bytecode virtual machines◈ Members↗
FA-90234

Numeric for loop: float limits truncated toward zero · case 04

for i = -5, -2.5 runs to -2, one iteration past the limit.

Bytecode virtual machines◈ Members↗
FA-90235

Numeric for loop: float limits truncated toward zero · case 05

for i = -5, -2.5 runs to -2, one iteration past the limit.

Bytecode virtual machines◈ Members↗
FA-90236

Numeric for loop: descending loops skipped · case 01

for i = 10, 1, -3 never runs.

Bytecode virtual machines● Open access↗
FA-90237

Numeric for loop: descending loops skipped · case 02

for i = 10, 1, -3 never runs.

Bytecode virtual machines◈ Members↗
FA-90238

Numeric for loop: descending loops skipped · case 03

for i = 10, 1, -3 never runs.

Bytecode virtual machines◈ Members↗
FA-90239

Numeric for loop: descending loops skipped · case 04

for i = 10, 1, -3 never runs.

Bytecode virtual machines◈ Members↗
FA-90240

Numeric for loop: descending loops skipped · case 05

for i = 10, 1, -3 never runs.

Bytecode virtual machines◈ Members↗
FA-90241

Numeric for loop: negative-step iteration count negative · case 01

Descending loops run zero times or stop early.

Bytecode virtual machines● Open access↗
FA-90242

Numeric for loop: negative-step iteration count negative · case 02

Descending loops run zero times or stop early.

Bytecode virtual machines◈ Members↗
FA-90243

Numeric for loop: negative-step iteration count negative · case 03

Descending loops run zero times or stop early.

Bytecode virtual machines◈ Members↗
FA-90244

Numeric for loop: negative-step iteration count negative · case 04

Descending loops run zero times or stop early.

Bytecode virtual machines◈ Members↗
FA-90245

Numeric for loop: negative-step iteration count negative · case 05

Descending loops run zero times or stop early.

Bytecode virtual machines◈ Members↗
FA-90246

Numeric for loop: last iteration dropped · case 01

for i = 1, 4 yields 1, 2, 3.

Bytecode virtual machines● Open access↗
FA-90247

Numeric for loop: last iteration dropped · case 02

for i = 1, 4 yields 1, 2, 3.

Bytecode virtual machines◈ Members↗
FA-90248

Numeric for loop: last iteration dropped · case 03

for i = 1, 4 yields 1, 2, 3.

Bytecode virtual machines◈ Members↗
FA-90249

Numeric for loop: last iteration dropped · case 04

for i = 1, 4 yields 1, 2, 3.

Bytecode virtual machines◈ Members↗
FA-90250

Numeric for loop: last iteration dropped · case 05

for i = 1, 4 yields 1, 2, 3.

Bytecode virtual machines◈ Members↗
FA-90251

Numeric for loop: float loops always test ascending · case 01

Descending float loops execute zero iterations.

Bytecode virtual machines● Open access↗
FA-90252

Numeric for loop: float loops always test ascending · case 02

Descending float loops execute zero iterations.

Bytecode virtual machines◈ Members↗
FA-90253

Numeric for loop: float loops always test ascending · case 03

Descending float loops execute zero iterations.

Bytecode virtual machines◈ Members↗
FA-90254

Numeric for loop: float loops always test ascending · case 04

Descending float loops execute zero iterations.

Bytecode virtual machines◈ Members↗
FA-90255

Numeric for loop: float loops always test ascending · case 05

Descending float loops execute zero iterations.

Bytecode virtual machines◈ Members↗
FA-90256

Switch dispatch: four padding bytes when already aligned · case 01

Switches whose operands already start on a 4-byte boundary read every word four bytes late.

Bytecode virtual machines● Open access↗
FA-90257

Switch dispatch: four padding bytes when already aligned · case 02

Switches whose operands already start on a 4-byte boundary read every word four bytes late.

Bytecode virtual machines◈ Members↗
FA-90258

Switch dispatch: four padding bytes when already aligned · case 03

Switches whose operands already start on a 4-byte boundary read every word four bytes late.

Bytecode virtual machines◈ Members↗
FA-90259

Switch dispatch: four padding bytes when already aligned · case 04

Switches whose operands already start on a 4-byte boundary read every word four bytes late.

Bytecode virtual machines◈ Members↗
FA-90260

Switch dispatch: four padding bytes when already aligned · case 05

Switches whose operands already start on a 4-byte boundary read every word four bytes late.

Bytecode virtual machines◈ Members↗
FA-90261

Switch dispatch: table offsets added to the aligned operand address · case 01

Matching cases land a few bytes past their intended targets.

Bytecode virtual machines● Open access↗
FA-90262

Switch dispatch: table offsets added to the aligned operand address · case 02

Matching cases land a few bytes past their intended targets.

Bytecode virtual machines◈ Members↗
FA-90263

Switch dispatch: table offsets added to the aligned operand address · case 03

Matching cases land a few bytes past their intended targets.

Bytecode virtual machines◈ Members↗
FA-90264

Switch dispatch: table offsets added to the aligned operand address · case 04

Matching cases land a few bytes past their intended targets.

Bytecode virtual machines◈ Members↗
FA-90265

Switch dispatch: table offsets added to the aligned operand address · case 05

Matching cases land a few bytes past their intended targets.

Bytecode virtual machines◈ Members↗
FA-90266

Switch dispatch: table indexed by key without subtracting low · case 01

Tables with a nonzero low bound select the wrong case or run off the operands.

Bytecode virtual machines● Open access↗
FA-90267

Switch dispatch: table indexed by key without subtracting low · case 02

Tables with a nonzero low bound select the wrong case or run off the operands.

Bytecode virtual machines◈ Members↗
FA-90268

Switch dispatch: table indexed by key without subtracting low · case 03

Tables with a nonzero low bound select the wrong case or run off the operands.

Bytecode virtual machines◈ Members↗
FA-90269

Switch dispatch: table indexed by key without subtracting low · case 04

Tables with a nonzero low bound select the wrong case or run off the operands.

Bytecode virtual machines◈ Members↗
FA-90270

Switch dispatch: table indexed by key without subtracting low · case 05

Tables with a nonzero low bound select the wrong case or run off the operands.

Bytecode virtual machines◈ Members↗
FA-90271

Switch dispatch: high bound handled by default · case 01

The last case of every tableswitch is unreachable.

Bytecode virtual machines● Open access↗
FA-90272

Switch dispatch: high bound handled by default · case 02

The last case of every tableswitch is unreachable.

Bytecode virtual machines◈ Members↗
FA-90273

Switch dispatch: high bound handled by default · case 03

The last case of every tableswitch is unreachable.

Bytecode virtual machines◈ Members↗
FA-90274

Switch dispatch: high bound handled by default · case 04

The last case of every tableswitch is unreachable.

Bytecode virtual machines◈ Members↗
FA-90275

Switch dispatch: high bound handled by default · case 05

The last case of every tableswitch is unreachable.

Bytecode virtual machines◈ Members↗
FA-90276

Switch dispatch: duplicate lookupswitch keys accepted · case 01

A lookupswitch with a repeated match value verifies and dispatches ambiguously.

Bytecode virtual machines● Open access↗
FA-90277

Switch dispatch: duplicate lookupswitch keys accepted · case 02

A lookupswitch with a repeated match value verifies and dispatches ambiguously.

Bytecode virtual machines◈ Members↗
FA-90278

Switch dispatch: duplicate lookupswitch keys accepted · case 03

A lookupswitch with a repeated match value verifies and dispatches ambiguously.

Bytecode virtual machines◈ Members↗
FA-90279

Switch dispatch: duplicate lookupswitch keys accepted · case 04

A lookupswitch with a repeated match value verifies and dispatches ambiguously.

Bytecode virtual machines◈ Members↗
FA-90280

Switch dispatch: duplicate lookupswitch keys accepted · case 05

A lookupswitch with a repeated match value verifies and dispatches ambiguously.

Bytecode virtual machines◈ Members↗
FA-90281

Wordcode prefixes: only the last EXTENDED_ARG counts · case 01

Arguments needing two or more prefixes lose their high bytes.

Bytecode virtual machines● Open access↗
FA-90282

Wordcode prefixes: only the last EXTENDED_ARG counts · case 02

Arguments needing two or more prefixes lose their high bytes.

Bytecode virtual machines◈ Members↗
FA-90283

Wordcode prefixes: only the last EXTENDED_ARG counts · case 03

Arguments needing two or more prefixes lose their high bytes.

Bytecode virtual machines◈ Members↗
FA-90284

Wordcode prefixes: only the last EXTENDED_ARG counts · case 04

Arguments needing two or more prefixes lose their high bytes.

Bytecode virtual machines◈ Members↗
FA-90285

Wordcode prefixes: only the last EXTENDED_ARG counts · case 05

Arguments needing two or more prefixes lose their high bytes.

Bytecode virtual machines◈ Members↗
FA-90286

Wordcode prefixes: prefix leaks into following instructions · case 01

Every instruction after a prefixed one gets an inflated argument.

Bytecode virtual machines● Open access↗
FA-90287

Wordcode prefixes: prefix leaks into following instructions · case 02

Every instruction after a prefixed one gets an inflated argument.

Bytecode virtual machines◈ Members↗
FA-90288

Wordcode prefixes: prefix leaks into following instructions · case 03

Every instruction after a prefixed one gets an inflated argument.

Bytecode virtual machines◈ Members↗
FA-90289

Wordcode prefixes: prefix leaks into following instructions · case 04

Every instruction after a prefixed one gets an inflated argument.

Bytecode virtual machines◈ Members↗
FA-90290

Wordcode prefixes: prefix leaks into following instructions · case 05

Every instruction after a prefixed one gets an inflated argument.

Bytecode virtual machines◈ Members↗
FA-90291

Wordcode prefixes: forward jumps measured from the jump itself · case 01

JUMP_FORWARD lands one instruction early.

Bytecode virtual machines● Open access↗
FA-90292

Wordcode prefixes: forward jumps measured from the jump itself · case 02

JUMP_FORWARD lands one instruction early.

Bytecode virtual machines◈ Members↗
FA-90293

Wordcode prefixes: forward jumps measured from the jump itself · case 03

JUMP_FORWARD lands one instruction early.

Bytecode virtual machines◈ Members↗
FA-90294

Wordcode prefixes: forward jumps measured from the jump itself · case 04

JUMP_FORWARD lands one instruction early.

Bytecode virtual machines◈ Members↗
FA-90295

Wordcode prefixes: forward jumps measured from the jump itself · case 05

JUMP_FORWARD lands one instruction early.

Bytecode virtual machines◈ Members↗
FA-90296

Wordcode prefixes: absolute jump targets in instruction units · case 01

Absolute jumps land at half their intended byte offset.

Bytecode virtual machines● Open access↗
FA-90297

Wordcode prefixes: absolute jump targets in instruction units · case 02

Absolute jumps land at half their intended byte offset.

Bytecode virtual machines◈ Members↗
FA-90298

Wordcode prefixes: absolute jump targets in instruction units · case 03

Absolute jumps land at half their intended byte offset.

Bytecode virtual machines◈ Members↗
FA-90299

Wordcode prefixes: absolute jump targets in instruction units · case 04

Absolute jumps land at half their intended byte offset.

Bytecode virtual machines◈ Members↗
FA-90300

Wordcode prefixes: absolute jump targets in instruction units · case 05

Absolute jumps land at half their intended byte offset.

Bytecode virtual machines◈ 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 ↗