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
Delta causal context join: compaction jumps over gaps · case 01
The vector claims dots that were never observed, so unseen additions are later discarded.
Delta causal context join: compaction jumps over gaps · case 02
The vector claims dots that were never observed, so unseen additions are later discarded.
Delta causal context join: compaction jumps over gaps · case 03
The vector claims dots that were never observed, so unseen additions are later discarded.
Delta causal context join: compaction jumps over gaps · case 04
The vector claims dots that were never observed, so unseen additions are later discarded.
Delta causal context join: compaction jumps over gaps · case 05
The vector claims dots that were never observed, so unseen additions are later discarded.
Delta causal context join: cloud entries already covered by the vector are kept · case 01
The cloud grows without bound with dots the vector already summarizes.
Delta causal context join: cloud entries already covered by the vector are kept · case 02
The cloud grows without bound with dots the vector already summarizes.
Delta causal context join: cloud entries already covered by the vector are kept · case 03
The cloud grows without bound with dots the vector already summarizes.
Delta causal context join: cloud entries already covered by the vector are kept · case 04
The cloud grows without bound with dots the vector already summarizes.
Delta causal context join: cloud entries already covered by the vector are kept · case 05
The cloud grows without bound with dots the vector already summarizes.
Causal delivery buffer: messages from one sender are delivered across a gap · case 01
A later message from a sender is applied before the earlier one it follows.
Causal delivery buffer: messages from one sender are delivered across a gap · case 02
A later message from a sender is applied before the earlier one it follows.
Causal delivery buffer: messages from one sender are delivered across a gap · case 03
A later message from a sender is applied before the earlier one it follows.
Causal delivery buffer: messages from one sender are delivered across a gap · case 04
A later message from a sender is applied before the earlier one it follows.
Causal delivery buffer: messages from one sender are delivered across a gap · case 05
A later message from a sender is applied before the earlier one it follows.
Causal delivery buffer: dependencies on other senders are ignored · case 01
An operation is applied before operations from other replicas that it causally depends on.
Causal delivery buffer: dependencies on other senders are ignored · case 02
An operation is applied before operations from other replicas that it causally depends on.
Causal delivery buffer: dependencies on other senders are ignored · case 03
An operation is applied before operations from other replicas that it causally depends on.
Causal delivery buffer: dependencies on other senders are ignored · case 04
An operation is applied before operations from other replicas that it causally depends on.
Causal delivery buffer: dependencies on other senders are ignored · case 05
An operation is applied before operations from other replicas that it causally depends on.
Causal delivery buffer: a delivery does not retry the rest of the buffer · case 01
Buffered messages that became deliverable stay pending until another message arrives.
Causal delivery buffer: a delivery does not retry the rest of the buffer · case 02
Buffered messages that became deliverable stay pending until another message arrives.
Causal delivery buffer: a delivery does not retry the rest of the buffer · case 03
Buffered messages that became deliverable stay pending until another message arrives.
Causal delivery buffer: a delivery does not retry the rest of the buffer · case 04
Buffered messages that became deliverable stay pending until another message arrives.
Causal delivery buffer: a delivery does not retry the rest of the buffer · case 05
Buffered messages that became deliverable stay pending until another message arrives.
Causal delivery buffer: a redelivery of the newest applied message is buffered · case 01
A retransmitted copy of the latest message sits in the buffer forever and is not counted as a duplicate.
Causal delivery buffer: a redelivery of the newest applied message is buffered · case 02
A retransmitted copy of the latest message sits in the buffer forever and is not counted as a duplicate.
Causal delivery buffer: a redelivery of the newest applied message is buffered · case 03
A retransmitted copy of the latest message sits in the buffer forever and is not counted as a duplicate.
Causal delivery buffer: a redelivery of the newest applied message is buffered · case 04
A retransmitted copy of the latest message sits in the buffer forever and is not counted as a duplicate.
Causal delivery buffer: a redelivery of the newest applied message is buffered · case 05
A retransmitted copy of the latest message sits in the buffer forever and is not counted as a duplicate.
Causal delivery buffer: delivery adopts the sender's whole vector · case 01
The delivered vector moves backwards and old messages are accepted again.
Causal delivery buffer: delivery adopts the sender's whole vector · case 02
The delivered vector moves backwards and old messages are accepted again.
Causal delivery buffer: delivery adopts the sender's whole vector · case 03
The delivered vector moves backwards and old messages are accepted again.
Causal delivery buffer: delivery adopts the sender's whole vector · case 04
The delivered vector moves backwards and old messages are accepted again.
Causal delivery buffer: delivery adopts the sender's whole vector · case 05
The delivered vector moves backwards and old messages are accepted again.
Bounded counter with rights transfer: received rights are never credited · case 01
A replica that was given rights still cannot decrement.
Bounded counter with rights transfer: received rights are never credited · case 02
A replica that was given rights still cannot decrement.
Bounded counter with rights transfer: received rights are never credited · case 03
A replica that was given rights still cannot decrement.
Bounded counter with rights transfer: received rights are never credited · case 04
A replica that was given rights still cannot decrement.
Bounded counter with rights transfer: received rights are never credited · case 05
A replica that was given rights still cannot decrement.
Bounded counter with rights transfer: rights given away can still be spent · case 01
After transferring rights a replica can decrement them again, and the global value goes negative.
Bounded counter with rights transfer: rights given away can still be spent · case 02
After transferring rights a replica can decrement them again, and the global value goes negative.
Bounded counter with rights transfer: rights given away can still be spent · case 03
After transferring rights a replica can decrement them again, and the global value goes negative.
Bounded counter with rights transfer: rights given away can still be spent · case 04
After transferring rights a replica can decrement them again, and the global value goes negative.
Bounded counter with rights transfer: rights given away can still be spent · case 05
After transferring rights a replica can decrement them again, and the global value goes negative.
Bounded counter with rights transfer: rights are computed from the global value · case 01
Two replicas both spend the whole observed balance and the merged counter drops below zero.
Bounded counter with rights transfer: rights are computed from the global value · case 02
Two replicas both spend the whole observed balance and the merged counter drops below zero.
Bounded counter with rights transfer: rights are computed from the global value · case 03
Two replicas both spend the whole observed balance and the merged counter drops below zero.
Bounded counter with rights transfer: rights are computed from the global value · case 04
Two replicas both spend the whole observed balance and the merged counter drops below zero.
Bounded counter with rights transfer: rights are computed from the global value · case 05
Two replicas both spend the whole observed balance and the merged counter drops below zero.
Bounded counter with rights transfer: a transfer is recorded in the reverse direction · case 01
The donor gains rights and the recipient loses them.
Bounded counter with rights transfer: a transfer is recorded in the reverse direction · case 02
The donor gains rights and the recipient loses them.
Bounded counter with rights transfer: a transfer is recorded in the reverse direction · case 03
The donor gains rights and the recipient loses them.
Bounded counter with rights transfer: a transfer is recorded in the reverse direction · case 04
The donor gains rights and the recipient loses them.
Bounded counter with rights transfer: a transfer is recorded in the reverse direction · case 05
The donor gains rights and the recipient loses them.
Bounded counter with rights transfer: decrements are not synchronized · case 01
Other replicas report a value that ignores all remote decrements.
Bounded counter with rights transfer: decrements are not synchronized · case 02
Other replicas report a value that ignores all remote decrements.
Bounded counter with rights transfer: decrements are not synchronized · case 03
Other replicas report a value that ignores all remote decrements.
Bounded counter with rights transfer: decrements are not synchronized · case 04
Other replicas report a value that ignores all remote decrements.
Bounded counter with rights transfer: decrements are not synchronized · case 05
Other replicas report a value that ignores all remote decrements.
Two-phase graph: edges to concurrently removed vertices remain visible · case 01
After merging a concurrent vertex removal, an edge dangles from or into a vertex that no longer exists.
Two-phase graph: edges to concurrently removed vertices remain visible · case 02
After merging a concurrent vertex removal, an edge dangles from or into a vertex that no longer exists.
Two-phase graph: edges to concurrently removed vertices remain visible · case 03
After merging a concurrent vertex removal, an edge dangles from or into a vertex that no longer exists.
Two-phase graph: edges to concurrently removed vertices remain visible · case 04
After merging a concurrent vertex removal, an edge dangles from or into a vertex that no longer exists.
Two-phase graph: edges to concurrently removed vertices remain visible · case 05
After merging a concurrent vertex removal, an edge dangles from or into a vertex that no longer exists.
Two-phase graph: a vertex with incoming edges can be removed · case 01
Removing the target of an edge is accepted and the edge silently disappears.
Two-phase graph: a vertex with incoming edges can be removed · case 02
Removing the target of an edge is accepted and the edge silently disappears.
Two-phase graph: a vertex with incoming edges can be removed · case 03
Removing the target of an edge is accepted and the edge silently disappears.
Two-phase graph: a vertex with incoming edges can be removed · case 04
Removing the target of an edge is accepted and the edge silently disappears.
Two-phase graph: a vertex with incoming edges can be removed · case 05
Removing the target of an edge is accepted and the edge silently disappears.
Two-phase graph: edges may be added to removed vertices · case 01
An edge to a vertex that was removed is accepted instead of rejected.
Two-phase graph: edges may be added to removed vertices · case 02
An edge to a vertex that was removed is accepted instead of rejected.
Two-phase graph: edges may be added to removed vertices · case 03
An edge to a vertex that was removed is accepted instead of rejected.
Two-phase graph: edges may be added to removed vertices · case 04
An edge to a vertex that was removed is accepted instead of rejected.
Two-phase graph: edges may be added to removed vertices · case 05
An edge to a vertex that was removed is accepted instead of rejected.
Two-phase graph: merge does not carry edge removals · case 01
An edge removed on one replica remains visible on the others.
Two-phase graph: merge does not carry edge removals · case 02
An edge removed on one replica remains visible on the others.
Two-phase graph: merge does not carry edge removals · case 03
An edge removed on one replica remains visible on the others.
Two-phase graph: merge does not carry edge removals · case 04
An edge removed on one replica remains visible on the others.
Two-phase graph: merge does not carry edge removals · case 05
An edge removed on one replica remains visible on the others.
Replicated growable array: insertion skips smaller ids instead of larger ones · case 01
Two replicas receiving the same concurrent inserts in different orders show different text.
Replicated growable array: insertion skips smaller ids instead of larger ones · case 02
Two replicas receiving the same concurrent inserts in different orders show different text.
Replicated growable array: insertion skips smaller ids instead of larger ones · case 03
Two replicas receiving the same concurrent inserts in different orders show different text.
Replicated growable array: insertion skips smaller ids instead of larger ones · case 04
Two replicas receiving the same concurrent inserts in different orders show different text.
Replicated growable array: insertion skips smaller ids instead of larger ones · case 05
Two replicas receiving the same concurrent inserts in different orders show different text.
Replicated growable array: deletes remove the slot physically · case 01
An insert that references a deleted character lands at the head of the document.
Replicated growable array: deletes remove the slot physically · case 02
An insert that references a deleted character lands at the head of the document.
Replicated growable array: deletes remove the slot physically · case 03
An insert that references a deleted character lands at the head of the document.
Replicated growable array: deletes remove the slot physically · case 04
An insert that references a deleted character lands at the head of the document.
Replicated growable array: deletes remove the slot physically · case 05
An insert that references a deleted character lands at the head of the document.
Replicated growable array: head inserts bypass the concurrent-sibling skip · case 01
Concurrent inserts at the start of the document appear in arrival order.
Replicated growable array: head inserts bypass the concurrent-sibling skip · case 02
Concurrent inserts at the start of the document appear in arrival order.
Replicated growable array: head inserts bypass the concurrent-sibling skip · case 03
Concurrent inserts at the start of the document appear in arrival order.
Replicated growable array: head inserts bypass the concurrent-sibling skip · case 04
Concurrent inserts at the start of the document appear in arrival order.
Replicated growable array: head inserts bypass the concurrent-sibling skip · case 05
Concurrent inserts at the start of the document appear in arrival order.
Replicated growable array: tombstones stop the concurrent-sibling skip · case 01
A replica that already deleted a concurrent insert orders a new insert differently from one that did not.
Replicated growable array: tombstones stop the concurrent-sibling skip · case 02
A replica that already deleted a concurrent insert orders a new insert differently from one that did not.
Replicated growable array: tombstones stop the concurrent-sibling skip · case 03
A replica that already deleted a concurrent insert orders a new insert differently from one that did not.
Replicated growable array: tombstones stop the concurrent-sibling skip · case 04
A replica that already deleted a concurrent insert orders a new insert differently from one that did not.
Replicated growable array: tombstones stop the concurrent-sibling skip · case 05
A replica that already deleted a concurrent insert orders a new insert differently from one that did not.
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 ↗