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

End-of-file newline diff: the marker is written only after removed lines · case 01

An added last line without newline is shown as if it had one.

Text diff and three-way merge● Open access↗
FA-75502

End-of-file newline diff: the marker is written only after removed lines · case 02

An added last line without newline is shown as if it had one.

Text diff and three-way merge◈ Members↗
FA-75503

End-of-file newline diff: the marker is written only after removed lines · case 03

An added last line without newline is shown as if it had one.

Text diff and three-way merge◈ Members↗
FA-75504

End-of-file newline diff: the marker is written only after removed lines · case 04

An added last line without newline is shown as if it had one.

Text diff and three-way merge◈ Members↗
FA-75505

End-of-file newline diff: the marker is written only after removed lines · case 05

An added last line without newline is shown as if it had one.

Text diff and three-way merge◈ Members↗
FA-75506

Patience diff anchors: lines repeated in the new side become anchors · case 01

A line duplicated in the new file anchors to its last copy and misaligns the diff.

Text diff and three-way merge● Open access↗
FA-75507

Patience diff anchors: lines repeated in the new side become anchors · case 02

A line duplicated in the new file anchors to its last copy and misaligns the diff.

Text diff and three-way merge◈ Members↗
FA-75508

Patience diff anchors: lines repeated in the new side become anchors · case 03

A line duplicated in the new file anchors to its last copy and misaligns the diff.

Text diff and three-way merge◈ Members↗
FA-75509

Patience diff anchors: lines repeated in the new side become anchors · case 04

A line duplicated in the new file anchors to its last copy and misaligns the diff.

Text diff and three-way merge◈ Members↗
FA-75510

Patience diff anchors: lines repeated in the new side become anchors · case 05

A line duplicated in the new file anchors to its last copy and misaligns the diff.

Text diff and three-way merge◈ Members↗
FA-75511

Patience diff anchors: piles are keyed by old index instead of new index · case 01

Crossing unique lines are all kept as anchors, producing an inconsistent alignment.

Text diff and three-way merge● Open access↗
FA-75512

Patience diff anchors: piles are keyed by old index instead of new index · case 02

Crossing unique lines are all kept as anchors, producing an inconsistent alignment.

Text diff and three-way merge◈ Members↗
FA-75513

Patience diff anchors: piles are keyed by old index instead of new index · case 03

Crossing unique lines are all kept as anchors, producing an inconsistent alignment.

Text diff and three-way merge◈ Members↗
FA-75514

Patience diff anchors: piles are keyed by old index instead of new index · case 04

Crossing unique lines are all kept as anchors, producing an inconsistent alignment.

Text diff and three-way merge◈ Members↗
FA-75515

Patience diff anchors: piles are keyed by old index instead of new index · case 05

Crossing unique lines are all kept as anchors, producing an inconsistent alignment.

Text diff and three-way merge◈ Members↗
FA-75516

Patience diff anchors: reconstruction starts from the first pile · case 01

Only a single anchor is returned even when a long chain exists.

Text diff and three-way merge● Open access↗
FA-75517

Patience diff anchors: reconstruction starts from the first pile · case 02

Only a single anchor is returned even when a long chain exists.

Text diff and three-way merge◈ Members↗
FA-75518

Patience diff anchors: reconstruction starts from the first pile · case 03

Only a single anchor is returned even when a long chain exists.

Text diff and three-way merge◈ Members↗
FA-75519

Patience diff anchors: reconstruction starts from the first pile · case 04

Only a single anchor is returned even when a long chain exists.

Text diff and three-way merge◈ Members↗
FA-75520

Patience diff anchors: reconstruction starts from the first pile · case 05

Only a single anchor is returned even when a long chain exists.

Text diff and three-way merge◈ Members↗
FA-75521

Diffstat histogram: small changes vanish from a scaled bar · case 01

A file with one changed line shows no marks next to a large file.

Text diff and three-way merge● Open access↗
FA-75522

Diffstat histogram: small changes vanish from a scaled bar · case 02

A file with one changed line shows no marks next to a large file.

Text diff and three-way merge◈ Members↗
FA-75523

Diffstat histogram: small changes vanish from a scaled bar · case 03

A file with one changed line shows no marks next to a large file.

Text diff and three-way merge◈ Members↗
FA-75524

Diffstat histogram: small changes vanish from a scaled bar · case 04

A file with one changed line shows no marks next to a large file.

Text diff and three-way merge◈ Members↗
FA-75525

Diffstat histogram: small changes vanish from a scaled bar · case 05

A file with one changed line shows no marks next to a large file.

Text diff and three-way merge◈ Members↗
FA-75526

Diffstat histogram: each bar is scaled to its own file total · case 01

Every changed file fills the whole width, so bars no longer compare sizes.

Text diff and three-way merge● Open access↗
FA-75527

Diffstat histogram: each bar is scaled to its own file total · case 02

Every changed file fills the whole width, so bars no longer compare sizes.

Text diff and three-way merge◈ Members↗
FA-75528

Diffstat histogram: each bar is scaled to its own file total · case 03

Every changed file fills the whole width, so bars no longer compare sizes.

Text diff and three-way merge◈ Members↗
FA-75529

Diffstat histogram: each bar is scaled to its own file total · case 04

Every changed file fills the whole width, so bars no longer compare sizes.

Text diff and three-way merge◈ Members↗
FA-75530

Diffstat histogram: each bar is scaled to its own file total · case 05

Every changed file fills the whole width, so bars no longer compare sizes.

Text diff and three-way merge◈ Members↗
FA-75531

Diffstat histogram: a single insertion is pluralized · case 01

The summary reads "1 insertions(+)".

Text diff and three-way merge● Open access↗
FA-75532

Diffstat histogram: a single insertion is pluralized · case 02

The summary reads "1 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75533

Diffstat histogram: a single insertion is pluralized · case 03

The summary reads "1 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75534

Diffstat histogram: a single insertion is pluralized · case 04

The summary reads "1 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75535

Diffstat histogram: a single insertion is pluralized · case 05

The summary reads "1 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75536

Diffstat histogram: zero insertions are still reported · case 01

A deletion-only change says "0 insertions(+)".

Text diff and three-way merge● Open access↗
FA-75537

Diffstat histogram: zero insertions are still reported · case 02

A deletion-only change says "0 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75538

Diffstat histogram: zero insertions are still reported · case 03

A deletion-only change says "0 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75539

Diffstat histogram: zero insertions are still reported · case 04

A deletion-only change says "0 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75540

Diffstat histogram: zero insertions are still reported · case 05

A deletion-only change says "0 insertions(+)".

Text diff and three-way merge◈ Members↗
FA-75541

Whitespace comparison modes: -b discards leading whitespace · case 01

Indenting a line is not reported under -b, although whitespace appeared where there was none.

Text diff and three-way merge● Open access↗
FA-75542

Whitespace comparison modes: -b discards leading whitespace · case 02

Indenting a line is not reported under -b, although whitespace appeared where there was none.

Text diff and three-way merge◈ Members↗
FA-75543

Whitespace comparison modes: -b discards leading whitespace · case 03

Indenting a line is not reported under -b, although whitespace appeared where there was none.

Text diff and three-way merge◈ Members↗
FA-75544

Whitespace comparison modes: -b discards leading whitespace · case 04

Indenting a line is not reported under -b, although whitespace appeared where there was none.

Text diff and three-way merge◈ Members↗
FA-75545

Whitespace comparison modes: -b discards leading whitespace · case 05

Indenting a line is not reported under -b, although whitespace appeared where there was none.

Text diff and three-way merge◈ Members↗
FA-75546

Whitespace comparison modes: -b collapses only spaces, not tabs · case 01

Replacing a tab with a space is reported as a change under -b.

Text diff and three-way merge● Open access↗
FA-75547

Whitespace comparison modes: -b collapses only spaces, not tabs · case 02

Replacing a tab with a space is reported as a change under -b.

Text diff and three-way merge◈ Members↗
FA-75548

Whitespace comparison modes: -b collapses only spaces, not tabs · case 03

Replacing a tab with a space is reported as a change under -b.

Text diff and three-way merge◈ Members↗
FA-75549

Whitespace comparison modes: -b collapses only spaces, not tabs · case 04

Replacing a tab with a space is reported as a change under -b.

Text diff and three-way merge◈ Members↗
FA-75550

Whitespace comparison modes: -b collapses only spaces, not tabs · case 05

Replacing a tab with a space is reported as a change under -b.

Text diff and three-way merge◈ Members↗
FA-75551

Whitespace comparison modes: every trailing carriage return is stripped · case 01

Lines ending in two carriage returns compare equal to lines with one.

Text diff and three-way merge● Open access↗
FA-75552

Whitespace comparison modes: every trailing carriage return is stripped · case 02

Lines ending in two carriage returns compare equal to lines with one.

Text diff and three-way merge◈ Members↗
FA-75553

Whitespace comparison modes: every trailing carriage return is stripped · case 03

Lines ending in two carriage returns compare equal to lines with one.

Text diff and three-way merge◈ Members↗
FA-75554

Whitespace comparison modes: every trailing carriage return is stripped · case 04

Lines ending in two carriage returns compare equal to lines with one.

Text diff and three-way merge◈ Members↗
FA-75555

Whitespace comparison modes: every trailing carriage return is stripped · case 05

Lines ending in two carriage returns compare equal to lines with one.

Text diff and three-way merge◈ Members↗
FA-75556

Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 01

Without a whitespace option, adding a line of spaces is ignored as a blank line.

Text diff and three-way merge● Open access↗
FA-75557

Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 02

Without a whitespace option, adding a line of spaces is ignored as a blank line.

Text diff and three-way merge◈ Members↗
FA-75558

Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 03

Without a whitespace option, adding a line of spaces is ignored as a blank line.

Text diff and three-way merge◈ Members↗
FA-75559

Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 04

Without a whitespace option, adding a line of spaces is ignored as a blank line.

Text diff and three-way merge◈ Members↗
FA-75560

Whitespace comparison modes: whitespace-only lines count as blank in every mode · case 05

Without a whitespace option, adding a line of spaces is ignored as a blank line.

Text diff and three-way merge◈ Members↗
FA-75561

Whitespace comparison modes: -w removes only spaces · case 01

Tab and other whitespace differences are still reported under -w.

Text diff and three-way merge● Open access↗
FA-75562

Whitespace comparison modes: -w removes only spaces · case 02

Tab and other whitespace differences are still reported under -w.

Text diff and three-way merge◈ Members↗
FA-75563

Whitespace comparison modes: -w removes only spaces · case 03

Tab and other whitespace differences are still reported under -w.

Text diff and three-way merge◈ Members↗
FA-75564

Whitespace comparison modes: -w removes only spaces · case 04

Tab and other whitespace differences are still reported under -w.

Text diff and three-way merge◈ Members↗
FA-75565

Whitespace comparison modes: -w removes only spaces · case 05

Tab and other whitespace differences are still reported under -w.

Text diff and three-way merge◈ Members↗
FA-75566

Character diff cleanup merge: the factored prefix becomes a separate equality · case 01

Two equalities sit next to each other after cleanup, so identical changes normalize differently.

Text diff and three-way merge● Open access↗
FA-75567

Character diff cleanup merge: the factored prefix becomes a separate equality · case 02

Two equalities sit next to each other after cleanup, so identical changes normalize differently.

Text diff and three-way merge◈ Members↗
FA-75568

Character diff cleanup merge: the factored prefix becomes a separate equality · case 03

Two equalities sit next to each other after cleanup, so identical changes normalize differently.

Text diff and three-way merge◈ Members↗
FA-75569

Character diff cleanup merge: the factored prefix becomes a separate equality · case 04

Two equalities sit next to each other after cleanup, so identical changes normalize differently.

Text diff and three-way merge◈ Members↗
FA-75570

Character diff cleanup merge: the factored prefix becomes a separate equality · case 05

Two equalities sit next to each other after cleanup, so identical changes normalize differently.

Text diff and three-way merge◈ Members↗
FA-75571

Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 01

Edits without a common suffix duplicate their deleted text into the next equality.

Text diff and three-way merge● Open access↗
FA-75572

Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 02

Edits without a common suffix duplicate their deleted text into the next equality.

Text diff and three-way merge◈ Members↗
FA-75573

Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 03

Edits without a common suffix duplicate their deleted text into the next equality.

Text diff and three-way merge◈ Members↗
FA-75574

Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 04

Edits without a common suffix duplicate their deleted text into the next equality.

Text diff and three-way merge◈ Members↗
FA-75575

Character diff cleanup merge: a zero-length suffix slices the whole deletion · case 05

Edits without a common suffix duplicate their deleted text into the next equality.

Text diff and three-way merge◈ Members↗
FA-75576

Character diff cleanup merge: empty entries survive cleanup · case 01

Normalized diffs contain empty equalities that split merges and render as nothing.

Text diff and three-way merge● Open access↗
FA-75577

Character diff cleanup merge: empty entries survive cleanup · case 02

Normalized diffs contain empty equalities that split merges and render as nothing.

Text diff and three-way merge◈ Members↗
FA-75578

Character diff cleanup merge: empty entries survive cleanup · case 03

Normalized diffs contain empty equalities that split merges and render as nothing.

Text diff and three-way merge◈ Members↗
FA-75579

Character diff cleanup merge: empty entries survive cleanup · case 04

Normalized diffs contain empty equalities that split merges and render as nothing.

Text diff and three-way merge◈ Members↗
FA-75580

Character diff cleanup merge: empty entries survive cleanup · case 05

Normalized diffs contain empty equalities that split merges and render as nothing.

Text diff and three-way merge◈ Members↗
FA-75581

Character diff cleanup merge: insertions are emitted before deletions · case 01

The same replacement normalizes to insertion-first output, unlike the canonical form.

Text diff and three-way merge● Open access↗
FA-75582

Character diff cleanup merge: insertions are emitted before deletions · case 02

The same replacement normalizes to insertion-first output, unlike the canonical form.

Text diff and three-way merge◈ Members↗
FA-75583

Character diff cleanup merge: insertions are emitted before deletions · case 03

The same replacement normalizes to insertion-first output, unlike the canonical form.

Text diff and three-way merge◈ Members↗
FA-75584

Character diff cleanup merge: insertions are emitted before deletions · case 04

The same replacement normalizes to insertion-first output, unlike the canonical form.

Text diff and three-way merge◈ Members↗
FA-75585

Character diff cleanup merge: insertions are emitted before deletions · case 05

The same replacement normalizes to insertion-first output, unlike the canonical form.

Text diff and three-way merge◈ Members↗
FA-75586

Character diff cleanup merge: a common suffix at the end of the text is lost · case 01

Characters shared by the final deletion and insertion disappear from the output.

Text diff and three-way merge● Open access↗
FA-75587

Character diff cleanup merge: a common suffix at the end of the text is lost · case 02

Characters shared by the final deletion and insertion disappear from the output.

Text diff and three-way merge◈ Members↗
FA-75588

Character diff cleanup merge: a common suffix at the end of the text is lost · case 03

Characters shared by the final deletion and insertion disappear from the output.

Text diff and three-way merge◈ Members↗
FA-75589

Character diff cleanup merge: a common suffix at the end of the text is lost · case 04

Characters shared by the final deletion and insertion disappear from the output.

Text diff and three-way merge◈ Members↗
FA-75590

Character diff cleanup merge: a common suffix at the end of the text is lost · case 05

Characters shared by the final deletion and insertion disappear from the output.

Text diff and three-way merge◈ Members↗
FA-75591

Rename similarity pairing: repeated lines are counted as a set · case 01

Files full of repeated lines (braces, blank lines) score too low to be detected as renames.

Text diff and three-way merge● Open access↗
FA-75592

Rename similarity pairing: repeated lines are counted as a set · case 02

Files full of repeated lines (braces, blank lines) score too low to be detected as renames.

Text diff and three-way merge◈ Members↗
FA-75593

Rename similarity pairing: repeated lines are counted as a set · case 03

Files full of repeated lines (braces, blank lines) score too low to be detected as renames.

Text diff and three-way merge◈ Members↗
FA-75594

Rename similarity pairing: repeated lines are counted as a set · case 04

Files full of repeated lines (braces, blank lines) score too low to be detected as renames.

Text diff and three-way merge◈ Members↗
FA-75595

Rename similarity pairing: repeated lines are counted as a set · case 05

Files full of repeated lines (braces, blank lines) score too low to be detected as renames.

Text diff and three-way merge◈ Members↗
FA-75596

Rename similarity pairing: a small file inside a large one scores 100 · case 01

A three-line file is reported as renamed to a large file that merely contains it.

Text diff and three-way merge● Open access↗
FA-75597

Rename similarity pairing: a small file inside a large one scores 100 · case 02

A three-line file is reported as renamed to a large file that merely contains it.

Text diff and three-way merge◈ Members↗
FA-75598

Rename similarity pairing: a small file inside a large one scores 100 · case 03

A three-line file is reported as renamed to a large file that merely contains it.

Text diff and three-way merge◈ Members↗
FA-75599

Rename similarity pairing: a small file inside a large one scores 100 · case 04

A three-line file is reported as renamed to a large file that merely contains it.

Text diff and three-way merge◈ Members↗
FA-75600

Rename similarity pairing: a small file inside a large one scores 100 · case 05

A three-line file is reported as renamed to a large file that merely contains it.

Text diff and three-way merge◈ 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 ↗