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 ↗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
LWW map with delete-wins ties: timestamp ties are decided by writer, not by kind · case 01
A put and a delete with equal timestamps resolve by replica name, sometimes keeping the key.
LWW map with delete-wins ties: timestamp ties are decided by writer, not by kind · case 02
A put and a delete with equal timestamps resolve by replica name, sometimes keeping the key.
LWW map with delete-wins ties: timestamp ties are decided by writer, not by kind · case 03
A put and a delete with equal timestamps resolve by replica name, sometimes keeping the key.
LWW map with delete-wins ties: timestamp ties are decided by writer, not by kind · case 04
A put and a delete with equal timestamps resolve by replica name, sometimes keeping the key.
LWW map with delete-wins ties: timestamp ties are decided by writer, not by kind · case 05
A put and a delete with equal timestamps resolve by replica name, sometimes keeping the key.
Fractional position allocation: a gap of one digit is treated as room · case 01
Two neighbours one digit apart receive a new position equal to the lower neighbour.
Fractional position allocation: a gap of one digit is treated as room · case 02
Two neighbours one digit apart receive a new position equal to the lower neighbour.
Fractional position allocation: a gap of one digit is treated as room · case 03
Two neighbours one digit apart receive a new position equal to the lower neighbour.
Fractional position allocation: a gap of one digit is treated as room · case 04
Two neighbours one digit apart receive a new position equal to the lower neighbour.
Fractional position allocation: a gap of one digit is treated as room · case 05
Two neighbours one digit apart receive a new position equal to the lower neighbour.
Fractional position allocation: the upper neighbour keeps constraining after the prefix diverges · case 01
Positions are allocated deeper than necessary or squeezed against digits that no longer bound them.
Fractional position allocation: the upper neighbour keeps constraining after the prefix diverges · case 02
Positions are allocated deeper than necessary or squeezed against digits that no longer bound them.
Fractional position allocation: the upper neighbour keeps constraining after the prefix diverges · case 03
Positions are allocated deeper than necessary or squeezed against digits that no longer bound them.
Fractional position allocation: the upper neighbour keeps constraining after the prefix diverges · case 04
Positions are allocated deeper than necessary or squeezed against digits that no longer bound them.
Fractional position allocation: the upper neighbour keeps constraining after the prefix diverges · case 05
Positions are allocated deeper than necessary or squeezed against digits that no longer bound them.
Fractional position allocation: an open upper bound uses the largest digit instead of the base · case 01
Appending after a position ending in 8 or 9 goes deeper instead of using the free top digit.
Fractional position allocation: an open upper bound uses the largest digit instead of the base · case 02
Appending after a position ending in 8 or 9 goes deeper instead of using the free top digit.
Fractional position allocation: an open upper bound uses the largest digit instead of the base · case 03
Appending after a position ending in 8 or 9 goes deeper instead of using the free top digit.
Fractional position allocation: an open upper bound uses the largest digit instead of the base · case 04
Appending after a position ending in 8 or 9 goes deeper instead of using the free top digit.
Fractional position allocation: an open upper bound uses the largest digit instead of the base · case 05
Appending after a position ending in 8 or 9 goes deeper instead of using the free top digit.
Replicated tree move: late moves are applied without undoing newer ones · case 01
Replicas that receive the same moves in different orders end with different trees.
Replicated tree move: late moves are applied without undoing newer ones · case 02
Replicas that receive the same moves in different orders end with different trees.
Replicated tree move: late moves are applied without undoing newer ones · case 03
Replicas that receive the same moves in different orders end with different trees.
Replicated tree move: late moves are applied without undoing newer ones · case 04
Replicas that receive the same moves in different orders end with different trees.
Replicated tree move: late moves are applied without undoing newer ones · case 05
Replicas that receive the same moves in different orders end with different trees.
Replicated tree move: the cycle check tests the wrong ancestry direction · case 01
Legitimate moves under a higher ancestor are refused while cycle-forming moves are accepted.
Replicated tree move: the cycle check tests the wrong ancestry direction · case 02
Legitimate moves under a higher ancestor are refused while cycle-forming moves are accepted.
Replicated tree move: the cycle check tests the wrong ancestry direction · case 03
Legitimate moves under a higher ancestor are refused while cycle-forming moves are accepted.
Replicated tree move: the cycle check tests the wrong ancestry direction · case 04
Legitimate moves under a higher ancestor are refused while cycle-forming moves are accepted.
Replicated tree move: the cycle check tests the wrong ancestry direction · case 05
Legitimate moves under a higher ancestor are refused while cycle-forming moves are accepted.
Replicated tree move: a skipped move detaches the node · case 01
A rejected cyclic move makes the node and its subtree disappear from the tree.
Replicated tree move: a skipped move detaches the node · case 02
A rejected cyclic move makes the node and its subtree disappear from the tree.
Replicated tree move: a skipped move detaches the node · case 03
A rejected cyclic move makes the node and its subtree disappear from the tree.
Replicated tree move: a skipped move detaches the node · case 04
A rejected cyclic move makes the node and its subtree disappear from the tree.
Replicated tree move: a skipped move detaches the node · case 05
A rejected cyclic move makes the node and its subtree disappear from the tree.
Replicated tree move: nodes can move under parents that are not in the tree · case 01
Subtrees hang from parents that are not attached anywhere.
Replicated tree move: nodes can move under parents that are not in the tree · case 02
Subtrees hang from parents that are not attached anywhere.
Replicated tree move: nodes can move under parents that are not in the tree · case 03
Subtrees hang from parents that are not attached anywhere.
Replicated tree move: nodes can move under parents that are not in the tree · case 04
Subtrees hang from parents that are not attached anywhere.
Replicated tree move: nodes can move under parents that are not in the tree · case 05
Subtrees hang from parents that are not attached anywhere.
Replicated tree move: undone moves are redone newest first · case 01
After a late move, redone moves apply in reverse timestamp order and a stale move wins.
Replicated tree move: undone moves are redone newest first · case 02
After a late move, redone moves apply in reverse timestamp order and a stale move wins.
Replicated tree move: undone moves are redone newest first · case 03
After a late move, redone moves apply in reverse timestamp order and a stale move wins.
Replicated tree move: undone moves are redone newest first · case 04
After a late move, redone moves apply in reverse timestamp order and a stale move wins.
Replicated tree move: undone moves are redone newest first · case 05
After a late move, redone moves apply in reverse timestamp order and a stale move wins.
Replicated tree move: undoing a node's first move leaves a null parent entry · case 01
A node that has not been created yet appears in the tree with a null parent.
Replicated tree move: undoing a node's first move leaves a null parent entry · case 02
A node that has not been created yet appears in the tree with a null parent.
Replicated tree move: undoing a node's first move leaves a null parent entry · case 03
A node that has not been created yet appears in the tree with a null parent.
Replicated tree move: undoing a node's first move leaves a null parent entry · case 04
A node that has not been created yet appears in the tree with a null parent.
Replicated tree move: undoing a node's first move leaves a null parent entry · case 05
A node that has not been created yet appears in the tree with a null parent.
Causal length set: any recorded history counts as membership · case 01
Removed elements keep appearing as members.
Causal length set: any recorded history counts as membership · case 02
Removed elements keep appearing as members.
Causal length set: any recorded history counts as membership · case 03
Removed elements keep appearing as members.
Causal length set: any recorded history counts as membership · case 04
Removed elements keep appearing as members.
Causal length set: any recorded history counts as membership · case 05
Removed elements keep appearing as members.
Causal length set: adding a present element toggles it off · case 01
A duplicate add removes the element.
Causal length set: adding a present element toggles it off · case 02
A duplicate add removes the element.
Causal length set: adding a present element toggles it off · case 03
A duplicate add removes the element.
Causal length set: adding a present element toggles it off · case 04
A duplicate add removes the element.
Causal length set: adding a present element toggles it off · case 05
A duplicate add removes the element.
Causal length set: removing an absent element toggles it on · case 01
A remove of something not in the set makes it appear.
Causal length set: removing an absent element toggles it on · case 02
A remove of something not in the set makes it appear.
Causal length set: removing an absent element toggles it on · case 03
A remove of something not in the set makes it appear.
Causal length set: removing an absent element toggles it on · case 04
A remove of something not in the set makes it appear.
Causal length set: removing an absent element toggles it on · case 05
A remove of something not in the set makes it appear.
Causal length set: merge prefers present copies over longer histories · case 01
A stale present copy revives an element that was later removed.
Causal length set: merge prefers present copies over longer histories · case 02
A stale present copy revives an element that was later removed.
Causal length set: merge prefers present copies over longer histories · case 03
A stale present copy revives an element that was later removed.
Causal length set: merge prefers present copies over longer histories · case 04
A stale present copy revives an element that was later removed.
Causal length set: merge prefers present copies over longer histories · case 05
A stale present copy revives an element that was later removed.
Awareness presence table: a replayed update revives a timed-out client · case 01
A client removed by timeout reappears when an old update is redelivered.
Awareness presence table: a replayed update revives a timed-out client · case 02
A client removed by timeout reappears when an old update is redelivered.
Awareness presence table: a replayed update revives a timed-out client · case 03
A client removed by timeout reappears when an old update is redelivered.
Awareness presence table: a replayed update revives a timed-out client · case 04
A client removed by timeout reappears when an old update is redelivered.
Awareness presence table: a replayed update revives a timed-out client · case 05
A client removed by timeout reappears when an old update is redelivered.
Awareness presence table: an offline notice with the current clock is ignored · case 01
A client that announces it is leaving stays visible until it times out.
Awareness presence table: an offline notice with the current clock is ignored · case 02
A client that announces it is leaving stays visible until it times out.
Awareness presence table: an offline notice with the current clock is ignored · case 03
A client that announces it is leaving stays visible until it times out.
Awareness presence table: an offline notice with the current clock is ignored · case 04
A client that announces it is leaving stays visible until it times out.
Awareness presence table: an offline notice with the current clock is ignored · case 05
A client that announces it is leaving stays visible until it times out.
Awareness presence table: a client exactly at the timeout is kept · case 01
A peer silent for exactly the timeout remains visible one tick too long.
Awareness presence table: a client exactly at the timeout is kept · case 02
A peer silent for exactly the timeout remains visible one tick too long.
Awareness presence table: a client exactly at the timeout is kept · case 03
A peer silent for exactly the timeout remains visible one tick too long.
Awareness presence table: a client exactly at the timeout is kept · case 04
A peer silent for exactly the timeout remains visible one tick too long.
Awareness presence table: a client exactly at the timeout is kept · case 05
A peer silent for exactly the timeout remains visible one tick too long.
Awareness presence table: the local user times out of its own presence table · case 01
The local user disappears from presence after a quiet period.
Awareness presence table: the local user times out of its own presence table · case 02
The local user disappears from presence after a quiet period.
Awareness presence table: the local user times out of its own presence table · case 03
The local user disappears from presence after a quiet period.
Awareness presence table: the local user times out of its own presence table · case 04
The local user disappears from presence after a quiet period.
Awareness presence table: the local user times out of its own presence table · case 05
The local user disappears from presence after a quiet period.
Awareness presence table: offline notices log removals of absent clients · case 01
Removal events are emitted for clients that were never present.
Awareness presence table: offline notices log removals of absent clients · case 02
Removal events are emitted for clients that were never present.
Awareness presence table: offline notices log removals of absent clients · case 03
Removal events are emitted for clients that were never present.
Awareness presence table: offline notices log removals of absent clients · case 04
Removal events are emitted for clients that were never present.
Awareness presence table: offline notices log removals of absent clients · case 05
Removal events are emitted for clients that were never present.
State vector diff: a struct ending exactly at the remote clock is resent as an empty slice · case 01
Zero-length updates are sent for structs the peer already has.
State vector diff: a struct ending exactly at the remote clock is resent as an empty slice · case 02
Zero-length updates are sent for structs the peer already has.
State vector diff: a struct ending exactly at the remote clock is resent as an empty slice · case 03
Zero-length updates are sent for structs the peer already has.
State vector diff: a struct ending exactly at the remote clock is resent as an empty slice · case 04
Zero-length updates are sent for structs the peer already has.
State vector diff: a struct ending exactly at the remote clock is resent as an empty slice · case 05
Zero-length updates are sent for structs the peer already has.
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 ↗