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

State vector diff: a partly known struct is resent whole · case 01

Peers receive clocks they already integrated.

CRDT convergence● Open access↗
FA-75302

State vector diff: a partly known struct is resent whole · case 02

Peers receive clocks they already integrated.

CRDT convergence◈ Members↗
FA-75303

State vector diff: a partly known struct is resent whole · case 03

Peers receive clocks they already integrated.

CRDT convergence◈ Members↗
FA-75304

State vector diff: a partly known struct is resent whole · case 04

Peers receive clocks they already integrated.

CRDT convergence◈ Members↗
FA-75305

State vector diff: a partly known struct is resent whole · case 05

Peers receive clocks they already integrated.

CRDT convergence◈ Members↗
FA-75306

State vector diff: clients unknown to the peer are never sent · case 01

A peer that has never heard from a client never receives its structs.

CRDT convergence● Open access↗
FA-75307

State vector diff: clients unknown to the peer are never sent · case 02

A peer that has never heard from a client never receives its structs.

CRDT convergence◈ Members↗
FA-75308

State vector diff: clients unknown to the peer are never sent · case 03

A peer that has never heard from a client never receives its structs.

CRDT convergence◈ Members↗
FA-75309

State vector diff: clients unknown to the peer are never sent · case 04

A peer that has never heard from a client never receives its structs.

CRDT convergence◈ Members↗
FA-75310

State vector diff: clients unknown to the peer are never sent · case 05

A peer that has never heard from a client never receives its structs.

CRDT convergence◈ Members↗
FA-75311

State vector diff: the local vector reports the last clock instead of the next one · case 01

The advertised state vector is one behind, so peers resend the last clock of every client.

CRDT convergence● Open access↗
FA-75312

State vector diff: the local vector reports the last clock instead of the next one · case 02

The advertised state vector is one behind, so peers resend the last clock of every client.

CRDT convergence◈ Members↗
FA-75313

State vector diff: the local vector reports the last clock instead of the next one · case 03

The advertised state vector is one behind, so peers resend the last clock of every client.

CRDT convergence◈ Members↗
FA-75314

State vector diff: the local vector reports the last clock instead of the next one · case 04

The advertised state vector is one behind, so peers resend the last clock of every client.

CRDT convergence◈ Members↗
FA-75315

State vector diff: the local vector reports the last clock instead of the next one · case 05

The advertised state vector is one behind, so peers resend the last clock of every client.

CRDT convergence◈ Members↗
FA-75316

State vector diff: integer client ids never match the decoded vector keys · case 01

Every sync resends the whole store.

CRDT convergence● Open access↗
FA-75317

State vector diff: integer client ids never match the decoded vector keys · case 02

Every sync resends the whole store.

CRDT convergence◈ Members↗
FA-75318

State vector diff: integer client ids never match the decoded vector keys · case 03

Every sync resends the whole store.

CRDT convergence◈ Members↗
FA-75319

State vector diff: integer client ids never match the decoded vector keys · case 04

Every sync resends the whole store.

CRDT convergence◈ Members↗
FA-75320

State vector diff: integer client ids never match the decoded vector keys · case 05

Every sync resends the whole store.

CRDT convergence◈ Members↗
FA-75321

Delete set normalization: touching ranges are not merged · case 01

Two ranges that meet end to start stay separate, so encodings differ between replicas.

CRDT convergence● Open access↗
FA-75322

Delete set normalization: touching ranges are not merged · case 02

Two ranges that meet end to start stay separate, so encodings differ between replicas.

CRDT convergence◈ Members↗
FA-75323

Delete set normalization: touching ranges are not merged · case 03

Two ranges that meet end to start stay separate, so encodings differ between replicas.

CRDT convergence◈ Members↗
FA-75324

Delete set normalization: touching ranges are not merged · case 04

Two ranges that meet end to start stay separate, so encodings differ between replicas.

CRDT convergence◈ Members↗
FA-75325

Delete set normalization: touching ranges are not merged · case 05

Two ranges that meet end to start stay separate, so encodings differ between replicas.

CRDT convergence◈ Members↗
FA-75326

Delete set normalization: a contained range shrinks the merged range · case 01

Deleted clocks at the end of a long range are forgotten.

CRDT convergence● Open access↗
FA-75327

Delete set normalization: a contained range shrinks the merged range · case 02

Deleted clocks at the end of a long range are forgotten.

CRDT convergence◈ Members↗
FA-75328

Delete set normalization: a contained range shrinks the merged range · case 03

Deleted clocks at the end of a long range are forgotten.

CRDT convergence◈ Members↗
FA-75329

Delete set normalization: a contained range shrinks the merged range · case 04

Deleted clocks at the end of a long range are forgotten.

CRDT convergence◈ Members↗
FA-75330

Delete set normalization: a contained range shrinks the merged range · case 05

Deleted clocks at the end of a long range are forgotten.

CRDT convergence◈ Members↗
FA-75331

Delete set normalization: ranges are merged in arrival order · case 01

Unsorted delete sets normalize to overlapping or out-of-order ranges.

CRDT convergence● Open access↗
FA-75332

Delete set normalization: ranges are merged in arrival order · case 02

Unsorted delete sets normalize to overlapping or out-of-order ranges.

CRDT convergence◈ Members↗
FA-75333

Delete set normalization: ranges are merged in arrival order · case 03

Unsorted delete sets normalize to overlapping or out-of-order ranges.

CRDT convergence◈ Members↗
FA-75334

Delete set normalization: ranges are merged in arrival order · case 04

Unsorted delete sets normalize to overlapping or out-of-order ranges.

CRDT convergence◈ Members↗
FA-75335

Delete set normalization: ranges are merged in arrival order · case 05

Unsorted delete sets normalize to overlapping or out-of-order ranges.

CRDT convergence◈ Members↗
FA-75336

Delete set normalization: the clock just past a range reads as deleted · case 01

The first live clock after a deleted range is reported as deleted.

CRDT convergence● Open access↗
FA-75337

Delete set normalization: the clock just past a range reads as deleted · case 02

The first live clock after a deleted range is reported as deleted.

CRDT convergence◈ Members↗
FA-75338

Delete set normalization: the clock just past a range reads as deleted · case 03

The first live clock after a deleted range is reported as deleted.

CRDT convergence◈ Members↗
FA-75339

Delete set normalization: the clock just past a range reads as deleted · case 04

The first live clock after a deleted range is reported as deleted.

CRDT convergence◈ Members↗
FA-75340

Delete set normalization: the clock just past a range reads as deleted · case 05

The first live clock after a deleted range is reported as deleted.

CRDT convergence◈ Members↗
FA-75341

LCS edit script: a match extends the wrong neighbouring cell · case 01

Diffs contain more insertions and deletions than necessary around repeated lines.

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

LCS edit script: a match extends the wrong neighbouring cell · case 02

Diffs contain more insertions and deletions than necessary around repeated lines.

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

LCS edit script: a match extends the wrong neighbouring cell · case 03

Diffs contain more insertions and deletions than necessary around repeated lines.

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

LCS edit script: a match extends the wrong neighbouring cell · case 04

Diffs contain more insertions and deletions than necessary around repeated lines.

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

LCS edit script: a match extends the wrong neighbouring cell · case 05

Diffs contain more insertions and deletions than necessary around repeated lines.

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

LCS edit script: ties emit the insertion before the deletion · case 01

A replaced line is shown as the new line followed by the removed one.

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

LCS edit script: ties emit the insertion before the deletion · case 02

A replaced line is shown as the new line followed by the removed one.

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

LCS edit script: ties emit the insertion before the deletion · case 03

A replaced line is shown as the new line followed by the removed one.

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

LCS edit script: ties emit the insertion before the deletion · case 04

A replaced line is shown as the new line followed by the removed one.

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

LCS edit script: ties emit the insertion before the deletion · case 05

A replaced line is shown as the new line followed by the removed one.

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

LCS edit script: the trailing deletion flush skips a line · case 01

The first of several trailing removed lines disappears from the diff.

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

LCS edit script: the trailing deletion flush skips a line · case 02

The first of several trailing removed lines disappears from the diff.

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

LCS edit script: the trailing deletion flush skips a line · case 03

The first of several trailing removed lines disappears from the diff.

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

LCS edit script: the trailing deletion flush skips a line · case 04

The first of several trailing removed lines disappears from the diff.

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

LCS edit script: the trailing deletion flush skips a line · case 05

The first of several trailing removed lines disappears from the diff.

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

LCS edit script: the first row and column of the table are never filled · case 01

Edits near the start of the files are chosen from zeros and the diff is not minimal.

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

LCS edit script: the first row and column of the table are never filled · case 02

Edits near the start of the files are chosen from zeros and the diff is not minimal.

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

LCS edit script: the first row and column of the table are never filled · case 03

Edits near the start of the files are chosen from zeros and the diff is not minimal.

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

LCS edit script: the first row and column of the table are never filled · case 04

Edits near the start of the files are chosen from zeros and the diff is not minimal.

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

LCS edit script: the first row and column of the table are never filled · case 05

Edits near the start of the files are chosen from zeros and the diff is not minimal.

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

Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 01

Reported distances are larger than the true minimum.

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

Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 02

Reported distances are larger than the true minimum.

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

Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 03

Reported distances are larger than the true minimum.

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

Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 04

Reported distances are larger than the true minimum.

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

Myers greedy edit distance: the furthest-reaching predecessor comparison is inverted · case 05

Reported distances are larger than the true minimum.

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

Myers greedy edit distance: only one equal element is followed on each diagonal · case 01

Runs of equal lines count as edits and the distance is overstated.

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

Myers greedy edit distance: only one equal element is followed on each diagonal · case 02

Runs of equal lines count as edits and the distance is overstated.

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

Myers greedy edit distance: only one equal element is followed on each diagonal · case 03

Runs of equal lines count as edits and the distance is overstated.

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

Myers greedy edit distance: only one equal element is followed on each diagonal · case 04

Runs of equal lines count as edits and the distance is overstated.

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

Myers greedy edit distance: only one equal element is followed on each diagonal · case 05

Runs of equal lines count as edits and the distance is overstated.

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

Myers greedy edit distance: the search stops when one sequence is exhausted · case 01

The distance omits the remaining insertions or deletions at the end.

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

Myers greedy edit distance: the search stops when one sequence is exhausted · case 02

The distance omits the remaining insertions or deletions at the end.

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

Myers greedy edit distance: the search stops when one sequence is exhausted · case 03

The distance omits the remaining insertions or deletions at the end.

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

Myers greedy edit distance: the search stops when one sequence is exhausted · case 04

The distance omits the remaining insertions or deletions at the end.

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

Myers greedy edit distance: the search stops when one sequence is exhausted · case 05

The distance omits the remaining insertions or deletions at the end.

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

Myers greedy edit distance: diagonals of the wrong parity are explored · case 01

Diagonals that cannot be reached with d edits are used and the reported distance is too small.

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

Myers greedy edit distance: diagonals of the wrong parity are explored · case 02

Diagonals that cannot be reached with d edits are used and the reported distance is too small.

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

Myers greedy edit distance: diagonals of the wrong parity are explored · case 03

Diagonals that cannot be reached with d edits are used and the reported distance is too small.

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

Myers greedy edit distance: diagonals of the wrong parity are explored · case 04

Diagonals that cannot be reached with d edits are used and the reported distance is too small.

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

Myers greedy edit distance: diagonals of the wrong parity are explored · case 05

Diagonals that cannot be reached with d edits are used and the reported distance is too small.

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

Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 01

Files whose distance equals max_d are treated as too different.

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

Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 02

Files whose distance equals max_d are treated as too different.

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

Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 03

Files whose distance equals max_d are treated as too different.

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

Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 04

Files whose distance equals max_d are treated as too different.

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

Myers greedy edit distance: a distance equal to the cap is reported as exceeded · case 05

Files whose distance equals max_d are treated as too different.

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

Unified hunk builder: hunks whose contexts touch are split · case 01

Two nearby changes produce two hunks that repeat the same context lines.

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

Unified hunk builder: hunks whose contexts touch are split · case 02

Two nearby changes produce two hunks that repeat the same context lines.

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

Unified hunk builder: hunks whose contexts touch are split · case 03

Two nearby changes produce two hunks that repeat the same context lines.

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

Unified hunk builder: hunks whose contexts touch are split · case 04

Two nearby changes produce two hunks that repeat the same context lines.

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

Unified hunk builder: hunks whose contexts touch are split · case 05

Two nearby changes produce two hunks that repeat the same context lines.

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

Unified hunk builder: empty ranges start at the next line · case 01

Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.

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

Unified hunk builder: empty ranges start at the next line · case 02

Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.

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

Unified hunk builder: empty ranges start at the next line · case 03

Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.

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

Unified hunk builder: empty ranges start at the next line · case 04

Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.

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

Unified hunk builder: empty ranges start at the next line · case 05

Headers for pure insertions or deletions point one line too far, so patch tools apply them in the wrong place.

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

Unified hunk builder: single-line ranges print an explicit count · case 01

Headers read "-3,1" where the convention is "-3".

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

Unified hunk builder: single-line ranges print an explicit count · case 02

Headers read "-3,1" where the convention is "-3".

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

Unified hunk builder: single-line ranges print an explicit count · case 03

Headers read "-3,1" where the convention is "-3".

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

Unified hunk builder: single-line ranges print an explicit count · case 04

Headers read "-3,1" where the convention is "-3".

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

Unified hunk builder: single-line ranges print an explicit count · case 05

Headers read "-3,1" where the convention is "-3".

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 ↗