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

Line table: no-line marker shifts subsequent lines · case 01

Every line after an artificial no-line instruction is 128 lower than it should be.

Bytecode virtual machines● Open access↗
FA-90002

Line table: no-line marker shifts subsequent lines · case 02

Every line after an artificial no-line instruction is 128 lower than it should be.

Bytecode virtual machines◈ Members↗
FA-90003

Line table: no-line marker shifts subsequent lines · case 03

Every line after an artificial no-line instruction is 128 lower than it should be.

Bytecode virtual machines◈ Members↗
FA-90004

Line table: no-line marker shifts subsequent lines · case 04

Every line after an artificial no-line instruction is 128 lower than it should be.

Bytecode virtual machines◈ Members↗
FA-90005

Line table: no-line marker shifts subsequent lines · case 05

Every line after an artificial no-line instruction is 128 lower than it should be.

Bytecode virtual machines◈ Members↗
FA-90006

Line table: address deltas read as bytes instead of code units · case 01

Line boundaries land at half the correct byte offsets.

Bytecode virtual machines● Open access↗
FA-90007

Line table: address deltas read as bytes instead of code units · case 02

Line boundaries land at half the correct byte offsets.

Bytecode virtual machines◈ Members↗
FA-90008

Line table: address deltas read as bytes instead of code units · case 03

Line boundaries land at half the correct byte offsets.

Bytecode virtual machines◈ Members↗
FA-90009

Line table: address deltas read as bytes instead of code units · case 04

Line boundaries land at half the correct byte offsets.

Bytecode virtual machines◈ Members↗
FA-90010

Line table: address deltas read as bytes instead of code units · case 05

Line boundaries land at half the correct byte offsets.

Bytecode virtual machines◈ Members↗
FA-90011

Line table: offsets before the first delta have no base entry · case 01

Instructions before the first table entry report the last line of the function.

Bytecode virtual machines● Open access↗
FA-90012

Line table: offsets before the first delta have no base entry · case 02

Instructions before the first table entry report the last line of the function.

Bytecode virtual machines◈ Members↗
FA-90013

Line table: offsets before the first delta have no base entry · case 03

Instructions before the first table entry report the last line of the function.

Bytecode virtual machines◈ Members↗
FA-90014

Line table: offsets before the first delta have no base entry · case 04

Instructions before the first table entry report the last line of the function.

Bytecode virtual machines◈ Members↗
FA-90015

Line table: offsets before the first delta have no base entry · case 05

Instructions before the first table entry report the last line of the function.

Bytecode virtual machines◈ Members↗
FA-90016

Constant pool: Long and Double occupy one slot · case 01

Every reference after the first 8-byte constant resolves to its neighbour.

Bytecode virtual machines● Open access↗
FA-90017

Constant pool: Long and Double occupy one slot · case 02

Every reference after the first 8-byte constant resolves to its neighbour.

Bytecode virtual machines◈ Members↗
FA-90018

Constant pool: Long and Double occupy one slot · case 03

Every reference after the first 8-byte constant resolves to its neighbour.

Bytecode virtual machines◈ Members↗
FA-90019

Constant pool: Long and Double occupy one slot · case 04

Every reference after the first 8-byte constant resolves to its neighbour.

Bytecode virtual machines◈ Members↗
FA-90020

Constant pool: Long and Double occupy one slot · case 05

Every reference after the first 8-byte constant resolves to its neighbour.

Bytecode virtual machines◈ Members↗
FA-90021

Constant pool: class names keep internal slashes · case 01

Resolved class names print as java/lang/String instead of java.lang.String.

Bytecode virtual machines● Open access↗
FA-90022

Constant pool: class names keep internal slashes · case 02

Resolved class names print as java/lang/String instead of java.lang.String.

Bytecode virtual machines◈ Members↗
FA-90023

Constant pool: class names keep internal slashes · case 03

Resolved class names print as java/lang/String instead of java.lang.String.

Bytecode virtual machines◈ Members↗
FA-90024

Constant pool: class names keep internal slashes · case 04

Resolved class names print as java/lang/String instead of java.lang.String.

Bytecode virtual machines◈ Members↗
FA-90025

Constant pool: class names keep internal slashes · case 05

Resolved class names print as java/lang/String instead of java.lang.String.

Bytecode virtual machines◈ Members↗
FA-90026

Constant pool: member reference owner not required to be a Class · case 01

A malformed Methodref whose owner index names a Utf8 entry resolves instead of being rejected.

Bytecode virtual machines● Open access↗
FA-90027

Constant pool: member reference owner not required to be a Class · case 02

A malformed Methodref whose owner index names a Utf8 entry resolves instead of being rejected.

Bytecode virtual machines◈ Members↗
FA-90028

Constant pool: member reference owner not required to be a Class · case 03

A malformed Methodref whose owner index names a Utf8 entry resolves instead of being rejected.

Bytecode virtual machines◈ Members↗
FA-90029

Constant pool: member reference owner not required to be a Class · case 04

A malformed Methodref whose owner index names a Utf8 entry resolves instead of being rejected.

Bytecode virtual machines◈ Members↗
FA-90030

Constant pool: member reference owner not required to be a Class · case 05

A malformed Methodref whose owner index names a Utf8 entry resolves instead of being rejected.

Bytecode virtual machines◈ Members↗
FA-90031

Constant pool: NameAndType renders descriptor before name · case 01

Member references print as "()I:length".

Bytecode virtual machines● Open access↗
FA-90032

Constant pool: NameAndType renders descriptor before name · case 02

Member references print as "()I:length".

Bytecode virtual machines◈ Members↗
FA-90033

Constant pool: NameAndType renders descriptor before name · case 03

Member references print as "()I:length".

Bytecode virtual machines◈ Members↗
FA-90034

Constant pool: NameAndType renders descriptor before name · case 04

Member references print as "()I:length".

Bytecode virtual machines◈ Members↗
FA-90035

Constant pool: NameAndType renders descriptor before name · case 05

Member references print as "()I:length".

Bytecode virtual machines◈ Members↗
FA-90036

Constant pool: String constants accept any referenced entry · case 01

A String constant pointing at an Integer produces "47" instead of a resolution error.

Bytecode virtual machines● Open access↗
FA-90037

Constant pool: String constants accept any referenced entry · case 02

A String constant pointing at an Integer produces "47" instead of a resolution error.

Bytecode virtual machines◈ Members↗
FA-90038

Constant pool: String constants accept any referenced entry · case 03

A String constant pointing at an Integer produces "47" instead of a resolution error.

Bytecode virtual machines◈ Members↗
FA-90039

Constant pool: String constants accept any referenced entry · case 04

A String constant pointing at an Integer produces "47" instead of a resolution error.

Bytecode virtual machines◈ Members↗
FA-90040

Constant pool: String constants accept any referenced entry · case 05

A String constant pointing at an Integer produces "47" instead of a resolution error.

Bytecode virtual machines◈ Members↗
FA-90041

Constant pool: Fieldref entries unresolvable · case 01

getfield/putfield operands resolve to bad-ref errors.

Bytecode virtual machines● Open access↗
FA-90042

Constant pool: Fieldref entries unresolvable · case 02

getfield/putfield operands resolve to bad-ref errors.

Bytecode virtual machines◈ Members↗
FA-90043

Constant pool: Fieldref entries unresolvable · case 03

getfield/putfield operands resolve to bad-ref errors.

Bytecode virtual machines◈ Members↗
FA-90044

Constant pool: Fieldref entries unresolvable · case 04

getfield/putfield operands resolve to bad-ref errors.

Bytecode virtual machines◈ Members↗
FA-90045

Constant pool: Fieldref entries unresolvable · case 05

getfield/putfield operands resolve to bad-ref errors.

Bytecode virtual machines◈ Members↗
FA-90046

Method descriptors: arrays of long counted as two slots · case 01

Methods taking long[] or double[] parameters get oversized frames and shifted locals.

Bytecode virtual machines● Open access↗
FA-90047

Method descriptors: arrays of long counted as two slots · case 02

Methods taking long[] or double[] parameters get oversized frames and shifted locals.

Bytecode virtual machines◈ Members↗
FA-90048

Method descriptors: arrays of long counted as two slots · case 03

Methods taking long[] or double[] parameters get oversized frames and shifted locals.

Bytecode virtual machines◈ Members↗
FA-90049

Method descriptors: arrays of long counted as two slots · case 04

Methods taking long[] or double[] parameters get oversized frames and shifted locals.

Bytecode virtual machines◈ Members↗
FA-90050

Method descriptors: arrays of long counted as two slots · case 05

Methods taking long[] or double[] parameters get oversized frames and shifted locals.

Bytecode virtual machines◈ Members↗
FA-90051

Method descriptors: instance methods lose the this slot · case 01

Local 0 of instance methods is assigned to the first declared parameter.

Bytecode virtual machines● Open access↗
FA-90052

Method descriptors: instance methods lose the this slot · case 02

Local 0 of instance methods is assigned to the first declared parameter.

Bytecode virtual machines◈ Members↗
FA-90053

Method descriptors: instance methods lose the this slot · case 03

Local 0 of instance methods is assigned to the first declared parameter.

Bytecode virtual machines◈ Members↗
FA-90054

Method descriptors: instance methods lose the this slot · case 04

Local 0 of instance methods is assigned to the first declared parameter.

Bytecode virtual machines◈ Members↗
FA-90055

Method descriptors: instance methods lose the this slot · case 05

Local 0 of instance methods is assigned to the first declared parameter.

Bytecode virtual machines◈ Members↗
FA-90056

Method descriptors: void arrays accepted as return type · case 01

A descriptor returning [V loads as returning an array of void.

Bytecode virtual machines● Open access↗
FA-90057

Method descriptors: void arrays accepted as return type · case 02

A descriptor returning [V loads as returning an array of void.

Bytecode virtual machines◈ Members↗
FA-90058

Method descriptors: void arrays accepted as return type · case 03

A descriptor returning [V loads as returning an array of void.

Bytecode virtual machines◈ Members↗
FA-90059

Method descriptors: void arrays accepted as return type · case 04

A descriptor returning [V loads as returning an array of void.

Bytecode virtual machines◈ Members↗
FA-90060

Method descriptors: void arrays accepted as return type · case 05

A descriptor returning [V loads as returning an array of void.

Bytecode virtual machines◈ Members↗
FA-90061

Method descriptors: empty object type name accepted · case 01

A parameter written as "L;" parses as a class with an empty name.

Bytecode virtual machines● Open access↗
FA-90062

Method descriptors: empty object type name accepted · case 02

A parameter written as "L;" parses as a class with an empty name.

Bytecode virtual machines◈ Members↗
FA-90063

Method descriptors: empty object type name accepted · case 03

A parameter written as "L;" parses as a class with an empty name.

Bytecode virtual machines◈ Members↗
FA-90064

Method descriptors: empty object type name accepted · case 04

A parameter written as "L;" parses as a class with an empty name.

Bytecode virtual machines◈ Members↗
FA-90065

Method descriptors: empty object type name accepted · case 05

A parameter written as "L;" parses as a class with an empty name.

Bytecode virtual machines◈ Members↗
FA-90066

Method descriptors: garbage after the return type ignored · case 01

Descriptors with trailing characters after the return type are accepted.

Bytecode virtual machines● Open access↗
FA-90067

Method descriptors: garbage after the return type ignored · case 02

Descriptors with trailing characters after the return type are accepted.

Bytecode virtual machines◈ Members↗
FA-90068

Method descriptors: garbage after the return type ignored · case 03

Descriptors with trailing characters after the return type are accepted.

Bytecode virtual machines◈ Members↗
FA-90069

Method descriptors: garbage after the return type ignored · case 04

Descriptors with trailing characters after the return type are accepted.

Bytecode virtual machines◈ Members↗
FA-90070

Method descriptors: garbage after the return type ignored · case 05

Descriptors with trailing characters after the return type are accepted.

Bytecode virtual machines◈ Members↗
FA-90071

Method descriptors: 255-dimensional arrays rejected · case 01

The maximum legal array depth is refused while the limit itself is enforced one too early.

Bytecode virtual machines● Open access↗
FA-90072

Method descriptors: 255-dimensional arrays rejected · case 02

The maximum legal array depth is refused while the limit itself is enforced one too early.

Bytecode virtual machines◈ Members↗
FA-90073

Method descriptors: 255-dimensional arrays rejected · case 03

The maximum legal array depth is refused while the limit itself is enforced one too early.

Bytecode virtual machines◈ Members↗
FA-90074

Method descriptors: 255-dimensional arrays rejected · case 04

The maximum legal array depth is refused while the limit itself is enforced one too early.

Bytecode virtual machines◈ Members↗
FA-90075

Method descriptors: 255-dimensional arrays rejected · case 05

The maximum legal array depth is refused while the limit itself is enforced one too early.

Bytecode virtual machines◈ Members↗
FA-90076

Upvalues: each closure gets a private copy of a captured local · case 01

After the scope closes, writes through one closure are invisible to its sibling.

Bytecode virtual machines● Open access↗
FA-90077

Upvalues: each closure gets a private copy of a captured local · case 02

After the scope closes, writes through one closure are invisible to its sibling.

Bytecode virtual machines◈ Members↗
FA-90078

Upvalues: each closure gets a private copy of a captured local · case 03

After the scope closes, writes through one closure are invisible to its sibling.

Bytecode virtual machines◈ Members↗
FA-90079

Upvalues: each closure gets a private copy of a captured local · case 04

After the scope closes, writes through one closure are invisible to its sibling.

Bytecode virtual machines◈ Members↗
FA-90080

Upvalues: each closure gets a private copy of a captured local · case 05

After the scope closes, writes through one closure are invisible to its sibling.

Bytecode virtual machines◈ Members↗
FA-90081

Upvalues: the slot at the closing level stays open · case 01

A closure keeps pointing at a stack slot that was popped and later reused.

Bytecode virtual machines● Open access↗
FA-90082

Upvalues: the slot at the closing level stays open · case 02

A closure keeps pointing at a stack slot that was popped and later reused.

Bytecode virtual machines◈ Members↗
FA-90083

Upvalues: the slot at the closing level stays open · case 03

A closure keeps pointing at a stack slot that was popped and later reused.

Bytecode virtual machines◈ Members↗
FA-90084

Upvalues: the slot at the closing level stays open · case 04

A closure keeps pointing at a stack slot that was popped and later reused.

Bytecode virtual machines◈ Members↗
FA-90085

Upvalues: the slot at the closing level stays open · case 05

A closure keeps pointing at a stack slot that was popped and later reused.

Bytecode virtual machines◈ Members↗
FA-90086

Upvalues: closed upvalues lose their value · case 01

Closures read None from variables captured in a finished scope.

Bytecode virtual machines● Open access↗
FA-90087

Upvalues: closed upvalues lose their value · case 02

Closures read None from variables captured in a finished scope.

Bytecode virtual machines◈ Members↗
FA-90088

Upvalues: closed upvalues lose their value · case 03

Closures read None from variables captured in a finished scope.

Bytecode virtual machines◈ Members↗
FA-90089

Upvalues: closed upvalues lose their value · case 04

Closures read None from variables captured in a finished scope.

Bytecode virtual machines◈ Members↗
FA-90090

Upvalues: closed upvalues lose their value · case 05

Closures read None from variables captured in a finished scope.

Bytecode virtual machines◈ Members↗
FA-90091

Upvalues: closed upvalues remain in the open list · case 01

A new closure over a reused slot binds to a dead variable's closed cell.

Bytecode virtual machines● Open access↗
FA-90092

Upvalues: closed upvalues remain in the open list · case 02

A new closure over a reused slot binds to a dead variable's closed cell.

Bytecode virtual machines◈ Members↗
FA-90093

Upvalues: closed upvalues remain in the open list · case 03

A new closure over a reused slot binds to a dead variable's closed cell.

Bytecode virtual machines◈ Members↗
FA-90094

Upvalues: closed upvalues remain in the open list · case 04

A new closure over a reused slot binds to a dead variable's closed cell.

Bytecode virtual machines◈ Members↗
FA-90095

Upvalues: closed upvalues remain in the open list · case 05

A new closure over a reused slot binds to a dead variable's closed cell.

Bytecode virtual machines◈ Members↗
FA-90096

Upvalues: reads decide by slot existence instead of open state · case 01

A closure reads whatever local now occupies its old slot.

Bytecode virtual machines● Open access↗
FA-90097

Upvalues: reads decide by slot existence instead of open state · case 02

A closure reads whatever local now occupies its old slot.

Bytecode virtual machines◈ Members↗
FA-90098

Upvalues: reads decide by slot existence instead of open state · case 03

A closure reads whatever local now occupies its old slot.

Bytecode virtual machines◈ Members↗
FA-90099

Upvalues: reads decide by slot existence instead of open state · case 04

A closure reads whatever local now occupies its old slot.

Bytecode virtual machines◈ Members↗
FA-90100

Upvalues: reads decide by slot existence instead of open state · case 05

A closure reads whatever local now occupies its old slot.

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 ↗