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

LWW register with Lamport stamps: an adopted value is re-stamped as a local write · case 01

After relaying a value, a replica makes it win or lose ties it should not.

CRDT convergence● Open access↗
FA-74902

LWW register with Lamport stamps: an adopted value is re-stamped as a local write · case 02

After relaying a value, a replica makes it win or lose ties it should not.

CRDT convergence◈ Members↗
FA-74903

LWW register with Lamport stamps: an adopted value is re-stamped as a local write · case 03

After relaying a value, a replica makes it win or lose ties it should not.

CRDT convergence◈ Members↗
FA-74904

LWW register with Lamport stamps: an adopted value is re-stamped as a local write · case 04

After relaying a value, a replica makes it win or lose ties it should not.

CRDT convergence◈ Members↗
FA-74905

LWW register with Lamport stamps: an adopted value is re-stamped as a local write · case 05

After relaying a value, a replica makes it win or lose ties it should not.

CRDT convergence◈ Members↗
FA-74906

LWW register with Lamport stamps: writer id outranks the clock · case 01

A replica with a large id wins even with a much older write.

CRDT convergence● Open access↗
FA-74907

LWW register with Lamport stamps: writer id outranks the clock · case 02

A replica with a large id wins even with a much older write.

CRDT convergence◈ Members↗
FA-74908

LWW register with Lamport stamps: writer id outranks the clock · case 03

A replica with a large id wins even with a much older write.

CRDT convergence◈ Members↗
FA-74909

LWW register with Lamport stamps: writer id outranks the clock · case 04

A replica with a large id wins even with a much older write.

CRDT convergence◈ Members↗
FA-74910

LWW register with Lamport stamps: writer id outranks the clock · case 05

A replica with a large id wins even with a much older write.

CRDT convergence◈ Members↗
FA-74911

LWW element set with add bias: equal add and remove timestamps hide the element · case 01

An element added and removed at the same timestamp disappears, contrary to the add-wins tie rule.

CRDT convergence● Open access↗
FA-74912

LWW element set with add bias: equal add and remove timestamps hide the element · case 02

An element added and removed at the same timestamp disappears, contrary to the add-wins tie rule.

CRDT convergence◈ Members↗
FA-74913

LWW element set with add bias: equal add and remove timestamps hide the element · case 03

An element added and removed at the same timestamp disappears, contrary to the add-wins tie rule.

CRDT convergence◈ Members↗
FA-74914

LWW element set with add bias: equal add and remove timestamps hide the element · case 04

An element added and removed at the same timestamp disappears, contrary to the add-wins tie rule.

CRDT convergence◈ Members↗
FA-74915

LWW element set with add bias: equal add and remove timestamps hide the element · case 05

An element added and removed at the same timestamp disappears, contrary to the add-wins tie rule.

CRDT convergence◈ Members↗
FA-74916

LWW element set with add bias: merge overwrites newer timestamps with older ones · case 01

Merging an older replica state resurrects or hides elements depending on delivery order.

CRDT convergence● Open access↗
FA-74917

LWW element set with add bias: merge overwrites newer timestamps with older ones · case 02

Merging an older replica state resurrects or hides elements depending on delivery order.

CRDT convergence◈ Members↗
FA-74918

LWW element set with add bias: merge overwrites newer timestamps with older ones · case 03

Merging an older replica state resurrects or hides elements depending on delivery order.

CRDT convergence◈ Members↗
FA-74919

LWW element set with add bias: merge overwrites newer timestamps with older ones · case 04

Merging an older replica state resurrects or hides elements depending on delivery order.

CRDT convergence◈ Members↗
FA-74920

LWW element set with add bias: merge overwrites newer timestamps with older ones · case 05

Merging an older replica state resurrects or hides elements depending on delivery order.

CRDT convergence◈ Members↗
FA-74921

LWW element set with add bias: merge omits the remove map · case 01

Removes never reach other replicas, which keep showing deleted elements.

CRDT convergence● Open access↗
FA-74922

LWW element set with add bias: merge omits the remove map · case 02

Removes never reach other replicas, which keep showing deleted elements.

CRDT convergence◈ Members↗
FA-74923

LWW element set with add bias: merge omits the remove map · case 03

Removes never reach other replicas, which keep showing deleted elements.

CRDT convergence◈ Members↗
FA-74924

LWW element set with add bias: merge omits the remove map · case 04

Removes never reach other replicas, which keep showing deleted elements.

CRDT convergence◈ Members↗
FA-74925

LWW element set with add bias: merge omits the remove map · case 05

Removes never reach other replicas, which keep showing deleted elements.

CRDT convergence◈ Members↗
FA-74926

LWW element set with add bias: a delayed local add lowers the stored timestamp · case 01

An old add delivered late makes a newer element lose to an intermediate remove.

CRDT convergence● Open access↗
FA-74927

LWW element set with add bias: a delayed local add lowers the stored timestamp · case 02

An old add delivered late makes a newer element lose to an intermediate remove.

CRDT convergence◈ Members↗
FA-74928

LWW element set with add bias: a delayed local add lowers the stored timestamp · case 03

An old add delivered late makes a newer element lose to an intermediate remove.

CRDT convergence◈ Members↗
FA-74929

LWW element set with add bias: a delayed local add lowers the stored timestamp · case 04

An old add delivered late makes a newer element lose to an intermediate remove.

CRDT convergence◈ Members↗
FA-74930

LWW element set with add bias: a delayed local add lowers the stored timestamp · case 05

An old add delivered late makes a newer element lose to an intermediate remove.

CRDT convergence◈ Members↗
FA-74931

Observed-remove set with unique tags: add tags collide across replicas · case 01

Removing an element at one replica also cancels a concurrent add of the same element elsewhere.

CRDT convergence● Open access↗
FA-74932

Observed-remove set with unique tags: add tags collide across replicas · case 02

Removing an element at one replica also cancels a concurrent add of the same element elsewhere.

CRDT convergence◈ Members↗
FA-74933

Observed-remove set with unique tags: add tags collide across replicas · case 03

Removing an element at one replica also cancels a concurrent add of the same element elsewhere.

CRDT convergence◈ Members↗
FA-74934

Observed-remove set with unique tags: add tags collide across replicas · case 04

Removing an element at one replica also cancels a concurrent add of the same element elsewhere.

CRDT convergence◈ Members↗
FA-74935

Observed-remove set with unique tags: add tags collide across replicas · case 05

Removing an element at one replica also cancels a concurrent add of the same element elsewhere.

CRDT convergence◈ Members↗
FA-74936

Observed-remove set with unique tags: remove deletes locally without tombstones · case 01

Removed elements come back as soon as a peer that still holds them merges in.

CRDT convergence● Open access↗
FA-74937

Observed-remove set with unique tags: remove deletes locally without tombstones · case 02

Removed elements come back as soon as a peer that still holds them merges in.

CRDT convergence◈ Members↗
FA-74938

Observed-remove set with unique tags: remove deletes locally without tombstones · case 03

Removed elements come back as soon as a peer that still holds them merges in.

CRDT convergence◈ Members↗
FA-74939

Observed-remove set with unique tags: remove deletes locally without tombstones · case 04

Removed elements come back as soon as a peer that still holds them merges in.

CRDT convergence◈ Members↗
FA-74940

Observed-remove set with unique tags: remove deletes locally without tombstones · case 05

Removed elements come back as soon as a peer that still holds them merges in.

CRDT convergence◈ Members↗
FA-74941

Observed-remove set with unique tags: merge does not carry tombstones · case 01

A remove never takes effect on replicas other than the one where it happened.

CRDT convergence● Open access↗
FA-74942

Observed-remove set with unique tags: merge does not carry tombstones · case 02

A remove never takes effect on replicas other than the one where it happened.

CRDT convergence◈ Members↗
FA-74943

Observed-remove set with unique tags: merge does not carry tombstones · case 03

A remove never takes effect on replicas other than the one where it happened.

CRDT convergence◈ Members↗
FA-74944

Observed-remove set with unique tags: merge does not carry tombstones · case 04

A remove never takes effect on replicas other than the one where it happened.

CRDT convergence◈ Members↗
FA-74945

Observed-remove set with unique tags: merge does not carry tombstones · case 05

A remove never takes effect on replicas other than the one where it happened.

CRDT convergence◈ Members↗
FA-74946

Observed-remove set with unique tags: merge filters only elements the sender still holds · case 01

An element removed at the sender stays visible at the receiver after merge.

CRDT convergence● Open access↗
FA-74947

Observed-remove set with unique tags: merge filters only elements the sender still holds · case 02

An element removed at the sender stays visible at the receiver after merge.

CRDT convergence◈ Members↗
FA-74948

Observed-remove set with unique tags: merge filters only elements the sender still holds · case 03

An element removed at the sender stays visible at the receiver after merge.

CRDT convergence◈ Members↗
FA-74949

Observed-remove set with unique tags: merge filters only elements the sender still holds · case 04

An element removed at the sender stays visible at the receiver after merge.

CRDT convergence◈ Members↗
FA-74950

Observed-remove set with unique tags: merge filters only elements the sender still holds · case 05

An element removed at the sender stays visible at the receiver after merge.

CRDT convergence◈ Members↗
FA-74951

Observed-remove set with unique tags: elements with no live tags remain members · case 01

A fully removed element keeps appearing in the membership list after merge.

CRDT convergence● Open access↗
FA-74952

Observed-remove set with unique tags: elements with no live tags remain members · case 02

A fully removed element keeps appearing in the membership list after merge.

CRDT convergence◈ Members↗
FA-74953

Observed-remove set with unique tags: elements with no live tags remain members · case 03

A fully removed element keeps appearing in the membership list after merge.

CRDT convergence◈ Members↗
FA-74954

Observed-remove set with unique tags: elements with no live tags remain members · case 04

A fully removed element keeps appearing in the membership list after merge.

CRDT convergence◈ Members↗
FA-74955

Observed-remove set with unique tags: elements with no live tags remain members · case 05

A fully removed element keeps appearing in the membership list after merge.

CRDT convergence◈ Members↗
FA-74956

Multi-value register: equal version vectors dominate each other · case 01

Merging a replica with an identical copy of its state erases the register value.

CRDT convergence● Open access↗
FA-74957

Multi-value register: equal version vectors dominate each other · case 02

Merging a replica with an identical copy of its state erases the register value.

CRDT convergence◈ Members↗
FA-74958

Multi-value register: equal version vectors dominate each other · case 03

Merging a replica with an identical copy of its state erases the register value.

CRDT convergence◈ Members↗
FA-74959

Multi-value register: equal version vectors dominate each other · case 04

Merging a replica with an identical copy of its state erases the register value.

CRDT convergence◈ Members↗
FA-74960

Multi-value register: equal version vectors dominate each other · case 05

Merging a replica with an identical copy of its state erases the register value.

CRDT convergence◈ Members↗
FA-74961

Multi-value register: a new write summarizes only the first sibling · case 01

A write meant to resolve a conflict leaves the other concurrent value alive.

CRDT convergence● Open access↗
FA-74962

Multi-value register: a new write summarizes only the first sibling · case 02

A write meant to resolve a conflict leaves the other concurrent value alive.

CRDT convergence◈ Members↗
FA-74963

Multi-value register: a new write summarizes only the first sibling · case 03

A write meant to resolve a conflict leaves the other concurrent value alive.

CRDT convergence◈ Members↗
FA-74964

Multi-value register: a new write summarizes only the first sibling · case 04

A write meant to resolve a conflict leaves the other concurrent value alive.

CRDT convergence◈ Members↗
FA-74965

Multi-value register: a new write summarizes only the first sibling · case 05

A write meant to resolve a conflict leaves the other concurrent value alive.

CRDT convergence◈ Members↗
FA-74966

Multi-value register: repeated writes by one replica reuse the same counter · case 01

A replica's second write carries the same vector as its first and loses against the stale value.

CRDT convergence● Open access↗
FA-74967

Multi-value register: repeated writes by one replica reuse the same counter · case 02

A replica's second write carries the same vector as its first and loses against the stale value.

CRDT convergence◈ Members↗
FA-74968

Multi-value register: repeated writes by one replica reuse the same counter · case 03

A replica's second write carries the same vector as its first and loses against the stale value.

CRDT convergence◈ Members↗
FA-74969

Multi-value register: repeated writes by one replica reuse the same counter · case 04

A replica's second write carries the same vector as its first and loses against the stale value.

CRDT convergence◈ Members↗
FA-74970

Multi-value register: repeated writes by one replica reuse the same counter · case 05

A replica's second write carries the same vector as its first and loses against the stale value.

CRDT convergence◈ Members↗
FA-74971

Multi-value register: merge only prunes against incoming siblings · case 01

A stale incoming value survives next to the newer local value that supersedes it.

CRDT convergence● Open access↗
FA-74972

Multi-value register: merge only prunes against incoming siblings · case 02

A stale incoming value survives next to the newer local value that supersedes it.

CRDT convergence◈ Members↗
FA-74973

Multi-value register: merge only prunes against incoming siblings · case 03

A stale incoming value survives next to the newer local value that supersedes it.

CRDT convergence◈ Members↗
FA-74974

Multi-value register: merge only prunes against incoming siblings · case 04

A stale incoming value survives next to the newer local value that supersedes it.

CRDT convergence◈ Members↗
FA-74975

Multi-value register: merge only prunes against incoming siblings · case 05

A stale incoming value survives next to the newer local value that supersedes it.

CRDT convergence◈ Members↗
FA-74976

Multi-value register: repeated merges duplicate the same sibling · case 01

Every re-merge of already known state adds another copy of the same value.

CRDT convergence● Open access↗
FA-74977

Multi-value register: repeated merges duplicate the same sibling · case 02

Every re-merge of already known state adds another copy of the same value.

CRDT convergence◈ Members↗
FA-74978

Multi-value register: repeated merges duplicate the same sibling · case 03

Every re-merge of already known state adds another copy of the same value.

CRDT convergence◈ Members↗
FA-74979

Multi-value register: repeated merges duplicate the same sibling · case 04

Every re-merge of already known state adds another copy of the same value.

CRDT convergence◈ Members↗
FA-74980

Multi-value register: repeated merges duplicate the same sibling · case 05

Every re-merge of already known state adds another copy of the same value.

CRDT convergence◈ Members↗
FA-74981

Delta causal context join: one-sided dots are tested against their own context · case 01

New additions known to only one replica disappear on join.

CRDT convergence● Open access↗
FA-74982

Delta causal context join: one-sided dots are tested against their own context · case 02

New additions known to only one replica disappear on join.

CRDT convergence◈ Members↗
FA-74983

Delta causal context join: one-sided dots are tested against their own context · case 03

New additions known to only one replica disappear on join.

CRDT convergence◈ Members↗
FA-74984

Delta causal context join: one-sided dots are tested against their own context · case 04

New additions known to only one replica disappear on join.

CRDT convergence◈ Members↗
FA-74985

Delta causal context join: one-sided dots are tested against their own context · case 05

New additions known to only one replica disappear on join.

CRDT convergence◈ Members↗
FA-74986

Delta causal context join: coverage ignores the dot cloud · case 01

A dot removed after out-of-order delivery comes back on join.

CRDT convergence● Open access↗
FA-74987

Delta causal context join: coverage ignores the dot cloud · case 02

A dot removed after out-of-order delivery comes back on join.

CRDT convergence◈ Members↗
FA-74988

Delta causal context join: coverage ignores the dot cloud · case 03

A dot removed after out-of-order delivery comes back on join.

CRDT convergence◈ Members↗
FA-74989

Delta causal context join: coverage ignores the dot cloud · case 04

A dot removed after out-of-order delivery comes back on join.

CRDT convergence◈ Members↗
FA-74990

Delta causal context join: coverage ignores the dot cloud · case 05

A dot removed after out-of-order delivery comes back on join.

CRDT convergence◈ Members↗
FA-74991

Delta causal context join: the newest dot in the vector is treated as unseen · case 01

An element removed at the peer survives when its dot equals the peer's vector entry.

CRDT convergence● Open access↗
FA-74992

Delta causal context join: the newest dot in the vector is treated as unseen · case 02

An element removed at the peer survives when its dot equals the peer's vector entry.

CRDT convergence◈ Members↗
FA-74993

Delta causal context join: the newest dot in the vector is treated as unseen · case 03

An element removed at the peer survives when its dot equals the peer's vector entry.

CRDT convergence◈ Members↗
FA-74994

Delta causal context join: the newest dot in the vector is treated as unseen · case 04

An element removed at the peer survives when its dot equals the peer's vector entry.

CRDT convergence◈ Members↗
FA-74995

Delta causal context join: the newest dot in the vector is treated as unseen · case 05

An element removed at the peer survives when its dot equals the peer's vector entry.

CRDT convergence◈ Members↗
FA-74996

Delta causal context join: the joined vector takes the second state's entries · case 01

The joined context regresses, later letting removed dots reappear.

CRDT convergence● Open access↗
FA-74997

Delta causal context join: the joined vector takes the second state's entries · case 02

The joined context regresses, later letting removed dots reappear.

CRDT convergence◈ Members↗
FA-74998

Delta causal context join: the joined vector takes the second state's entries · case 03

The joined context regresses, later letting removed dots reappear.

CRDT convergence◈ Members↗
FA-74999

Delta causal context join: the joined vector takes the second state's entries · case 04

The joined context regresses, later letting removed dots reappear.

CRDT convergence◈ Members↗
FA-75000

Delta causal context join: the joined vector takes the second state's entries · case 05

The joined context regresses, later letting removed dots reappear.

CRDT convergence◈ 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 ↗