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

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.

CRDT convergence● Open access↗
FA-75202

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.

CRDT convergence◈ Members↗
FA-75203

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.

CRDT convergence◈ Members↗
FA-75204

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.

CRDT convergence◈ Members↗
FA-75205

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.

CRDT convergence◈ Members↗
FA-75206

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.

CRDT convergence● Open access↗
FA-75207

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.

CRDT convergence◈ Members↗
FA-75208

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.

CRDT convergence◈ Members↗
FA-75209

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.

CRDT convergence◈ Members↗
FA-75210

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.

CRDT convergence◈ Members↗
FA-75211

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.

CRDT convergence● Open access↗
FA-75212

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.

CRDT convergence◈ Members↗
FA-75213

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.

CRDT convergence◈ Members↗
FA-75214

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.

CRDT convergence◈ Members↗
FA-75215

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.

CRDT convergence◈ Members↗
FA-75216

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.

CRDT convergence● Open access↗
FA-75217

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.

CRDT convergence◈ Members↗
FA-75218

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.

CRDT convergence◈ Members↗
FA-75219

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.

CRDT convergence◈ Members↗
FA-75220

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.

CRDT convergence◈ Members↗
FA-75221

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.

CRDT convergence● Open access↗
FA-75222

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.

CRDT convergence◈ Members↗
FA-75223

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.

CRDT convergence◈ Members↗
FA-75224

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.

CRDT convergence◈ Members↗
FA-75225

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.

CRDT convergence◈ Members↗
FA-75226

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.

CRDT convergence● Open access↗
FA-75227

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.

CRDT convergence◈ Members↗
FA-75228

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.

CRDT convergence◈ Members↗
FA-75229

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.

CRDT convergence◈ Members↗
FA-75230

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.

CRDT convergence◈ Members↗
FA-75231

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.

CRDT convergence● Open access↗
FA-75232

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.

CRDT convergence◈ Members↗
FA-75233

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.

CRDT convergence◈ Members↗
FA-75234

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.

CRDT convergence◈ Members↗
FA-75235

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.

CRDT convergence◈ Members↗
FA-75236

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.

CRDT convergence● Open access↗
FA-75237

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.

CRDT convergence◈ Members↗
FA-75238

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.

CRDT convergence◈ Members↗
FA-75239

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.

CRDT convergence◈ Members↗
FA-75240

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.

CRDT convergence◈ Members↗
FA-75241

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.

CRDT convergence● Open access↗
FA-75242

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.

CRDT convergence◈ Members↗
FA-75243

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.

CRDT convergence◈ Members↗
FA-75244

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.

CRDT convergence◈ Members↗
FA-75245

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.

CRDT convergence◈ Members↗
FA-75246

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.

CRDT convergence● Open access↗
FA-75247

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.

CRDT convergence◈ Members↗
FA-75248

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.

CRDT convergence◈ Members↗
FA-75249

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.

CRDT convergence◈ Members↗
FA-75250

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.

CRDT convergence◈ Members↗
FA-75251

Causal length set: any recorded history counts as membership · case 01

Removed elements keep appearing as members.

CRDT convergence● Open access↗
FA-75252

Causal length set: any recorded history counts as membership · case 02

Removed elements keep appearing as members.

CRDT convergence◈ Members↗
FA-75253

Causal length set: any recorded history counts as membership · case 03

Removed elements keep appearing as members.

CRDT convergence◈ Members↗
FA-75254

Causal length set: any recorded history counts as membership · case 04

Removed elements keep appearing as members.

CRDT convergence◈ Members↗
FA-75255

Causal length set: any recorded history counts as membership · case 05

Removed elements keep appearing as members.

CRDT convergence◈ Members↗
FA-75256

Causal length set: adding a present element toggles it off · case 01

A duplicate add removes the element.

CRDT convergence● Open access↗
FA-75257

Causal length set: adding a present element toggles it off · case 02

A duplicate add removes the element.

CRDT convergence◈ Members↗
FA-75258

Causal length set: adding a present element toggles it off · case 03

A duplicate add removes the element.

CRDT convergence◈ Members↗
FA-75259

Causal length set: adding a present element toggles it off · case 04

A duplicate add removes the element.

CRDT convergence◈ Members↗
FA-75260

Causal length set: adding a present element toggles it off · case 05

A duplicate add removes the element.

CRDT convergence◈ Members↗
FA-75261

Causal length set: removing an absent element toggles it on · case 01

A remove of something not in the set makes it appear.

CRDT convergence● Open access↗
FA-75262

Causal length set: removing an absent element toggles it on · case 02

A remove of something not in the set makes it appear.

CRDT convergence◈ Members↗
FA-75263

Causal length set: removing an absent element toggles it on · case 03

A remove of something not in the set makes it appear.

CRDT convergence◈ Members↗
FA-75264

Causal length set: removing an absent element toggles it on · case 04

A remove of something not in the set makes it appear.

CRDT convergence◈ Members↗
FA-75265

Causal length set: removing an absent element toggles it on · case 05

A remove of something not in the set makes it appear.

CRDT convergence◈ Members↗
FA-75266

Causal length set: merge prefers present copies over longer histories · case 01

A stale present copy revives an element that was later removed.

CRDT convergence● Open access↗
FA-75267

Causal length set: merge prefers present copies over longer histories · case 02

A stale present copy revives an element that was later removed.

CRDT convergence◈ Members↗
FA-75268

Causal length set: merge prefers present copies over longer histories · case 03

A stale present copy revives an element that was later removed.

CRDT convergence◈ Members↗
FA-75269

Causal length set: merge prefers present copies over longer histories · case 04

A stale present copy revives an element that was later removed.

CRDT convergence◈ Members↗
FA-75270

Causal length set: merge prefers present copies over longer histories · case 05

A stale present copy revives an element that was later removed.

CRDT convergence◈ Members↗
FA-75271

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.

CRDT convergence● Open access↗
FA-75272

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.

CRDT convergence◈ Members↗
FA-75273

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.

CRDT convergence◈ Members↗
FA-75274

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.

CRDT convergence◈ Members↗
FA-75275

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.

CRDT convergence◈ Members↗
FA-75276

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.

CRDT convergence● Open access↗
FA-75277

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.

CRDT convergence◈ Members↗
FA-75278

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.

CRDT convergence◈ Members↗
FA-75279

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.

CRDT convergence◈ Members↗
FA-75280

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.

CRDT convergence◈ Members↗
FA-75281

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.

CRDT convergence● Open access↗
FA-75282

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.

CRDT convergence◈ Members↗
FA-75283

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.

CRDT convergence◈ Members↗
FA-75284

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.

CRDT convergence◈ Members↗
FA-75285

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.

CRDT convergence◈ Members↗
FA-75286

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.

CRDT convergence● Open access↗
FA-75287

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.

CRDT convergence◈ Members↗
FA-75288

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.

CRDT convergence◈ Members↗
FA-75289

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.

CRDT convergence◈ Members↗
FA-75290

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.

CRDT convergence◈ Members↗
FA-75291

Awareness presence table: offline notices log removals of absent clients · case 01

Removal events are emitted for clients that were never present.

CRDT convergence● Open access↗
FA-75292

Awareness presence table: offline notices log removals of absent clients · case 02

Removal events are emitted for clients that were never present.

CRDT convergence◈ Members↗
FA-75293

Awareness presence table: offline notices log removals of absent clients · case 03

Removal events are emitted for clients that were never present.

CRDT convergence◈ Members↗
FA-75294

Awareness presence table: offline notices log removals of absent clients · case 04

Removal events are emitted for clients that were never present.

CRDT convergence◈ Members↗
FA-75295

Awareness presence table: offline notices log removals of absent clients · case 05

Removal events are emitted for clients that were never present.

CRDT convergence◈ Members↗
FA-75296

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.

CRDT convergence● Open access↗
FA-75297

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.

CRDT convergence◈ Members↗
FA-75298

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.

CRDT convergence◈ Members↗
FA-75299

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.

CRDT convergence◈ Members↗
FA-75300

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.

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 ↗