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

Format 1 to format 0 track merge: track clocks chained end to end · case 01

The second track is placed after the first track's last event instead of starting at tick 0.

MIDI event timing● Open access↗
FA-81602

Format 1 to format 0 track merge: track clocks chained end to end · case 02

The second track is placed after the first track's last event instead of starting at tick 0.

MIDI event timing◈ Members↗
FA-81603

Format 1 to format 0 track merge: track clocks chained end to end · case 03

The second track is placed after the first track's last event instead of starting at tick 0.

MIDI event timing◈ Members↗
FA-81604

Format 1 to format 0 track merge: track clocks chained end to end · case 04

The second track is placed after the first track's last event instead of starting at tick 0.

MIDI event timing◈ Members↗
FA-81605

Format 1 to format 0 track merge: track clocks chained end to end · case 05

The second track is placed after the first track's last event instead of starting at tick 0.

MIDI event timing◈ Members↗
FA-81606

Format 1 to format 0 track merge: simultaneous events ordered by name · case 01

Simultaneous events from different tracks are reordered alphabetically instead of by track, e.g. a tempo event after the notes it should govern.

MIDI event timing● Open access↗
FA-81607

Format 1 to format 0 track merge: simultaneous events ordered by name · case 02

Simultaneous events from different tracks are reordered alphabetically instead of by track, e.g. a tempo event after the notes it should govern.

MIDI event timing◈ Members↗
FA-81608

Format 1 to format 0 track merge: simultaneous events ordered by name · case 03

Simultaneous events from different tracks are reordered alphabetically instead of by track, e.g. a tempo event after the notes it should govern.

MIDI event timing◈ Members↗
FA-81609

Format 1 to format 0 track merge: simultaneous events ordered by name · case 04

Simultaneous events from different tracks are reordered alphabetically instead of by track, e.g. a tempo event after the notes it should govern.

MIDI event timing◈ Members↗
FA-81610

Format 1 to format 0 track merge: simultaneous events ordered by name · case 05

Simultaneous events from different tracks are reordered alphabetically instead of by track, e.g. a tempo event after the notes it should govern.

MIDI event timing◈ Members↗
FA-81611

Format 1 to format 0 track merge: last track's end-of-track wins · case 01

If an earlier track ends later than the last track, the merged end-of-track moves earlier.

MIDI event timing● Open access↗
FA-81612

Format 1 to format 0 track merge: last track's end-of-track wins · case 02

If an earlier track ends later than the last track, the merged end-of-track moves earlier.

MIDI event timing◈ Members↗
FA-81613

Format 1 to format 0 track merge: last track's end-of-track wins · case 03

If an earlier track ends later than the last track, the merged end-of-track moves earlier.

MIDI event timing◈ Members↗
FA-81614

Format 1 to format 0 track merge: last track's end-of-track wins · case 04

If an earlier track ends later than the last track, the merged end-of-track moves earlier.

MIDI event timing◈ Members↗
FA-81615

Format 1 to format 0 track merge: last track's end-of-track wins · case 05

If an earlier track ends later than the last track, the merged end-of-track moves earlier.

MIDI event timing◈ Members↗
FA-81616

Format 1 to format 0 track merge: end-of-track placed before the last event · case 01

When end-of-track markers precede the last merged event, the final delta goes negative.

MIDI event timing● Open access↗
FA-81617

Format 1 to format 0 track merge: end-of-track placed before the last event · case 02

When end-of-track markers precede the last merged event, the final delta goes negative.

MIDI event timing◈ Members↗
FA-81618

Format 1 to format 0 track merge: end-of-track placed before the last event · case 03

When end-of-track markers precede the last merged event, the final delta goes negative.

MIDI event timing◈ Members↗
FA-81619

Format 1 to format 0 track merge: end-of-track placed before the last event · case 04

When end-of-track markers precede the last merged event, the final delta goes negative.

MIDI event timing◈ Members↗
FA-81620

Format 1 to format 0 track merge: end-of-track placed before the last event · case 05

When end-of-track markers precede the last merged event, the final delta goes negative.

MIDI event timing◈ Members↗
FA-81621

Lookahead scheduler dispatch windows: event on the window edge dispatched early · case 01

An event exactly at now + lookahead is sent in the current window and the next window misses nothing, so it fires one window early.

MIDI event timing● Open access↗
FA-81622

Lookahead scheduler dispatch windows: event on the window edge dispatched early · case 02

An event exactly at now + lookahead is sent in the current window and the next window misses nothing, so it fires one window early.

MIDI event timing◈ Members↗
FA-81623

Lookahead scheduler dispatch windows: event on the window edge dispatched early · case 03

An event exactly at now + lookahead is sent in the current window and the next window misses nothing, so it fires one window early.

MIDI event timing◈ Members↗
FA-81624

Lookahead scheduler dispatch windows: event on the window edge dispatched early · case 04

An event exactly at now + lookahead is sent in the current window and the next window misses nothing, so it fires one window early.

MIDI event timing◈ Members↗
FA-81625

Lookahead scheduler dispatch windows: event on the window edge dispatched early · case 05

An event exactly at now + lookahead is sent in the current window and the next window misses nothing, so it fires one window early.

MIDI event timing◈ Members↗
FA-81626

Lookahead scheduler dispatch windows: slightly late events dropped · case 01

Events a few milliseconds late are dropped instead of being dispatched immediately.

MIDI event timing● Open access↗
FA-81627

Lookahead scheduler dispatch windows: slightly late events dropped · case 02

Events a few milliseconds late are dropped instead of being dispatched immediately.

MIDI event timing◈ Members↗
FA-81628

Lookahead scheduler dispatch windows: slightly late events dropped · case 03

Events a few milliseconds late are dropped instead of being dispatched immediately.

MIDI event timing◈ Members↗
FA-81629

Lookahead scheduler dispatch windows: slightly late events dropped · case 04

Events a few milliseconds late are dropped instead of being dispatched immediately.

MIDI event timing◈ Members↗
FA-81630

Lookahead scheduler dispatch windows: slightly late events dropped · case 05

Events a few milliseconds late are dropped instead of being dispatched immediately.

MIDI event timing◈ Members↗
FA-81631

Lookahead scheduler dispatch windows: dropped events reported every window · case 01

A stale event is added to the dropped list again in every later window.

MIDI event timing● Open access↗
FA-81632

Lookahead scheduler dispatch windows: dropped events reported every window · case 02

A stale event is added to the dropped list again in every later window.

MIDI event timing◈ Members↗
FA-81633

Lookahead scheduler dispatch windows: dropped events reported every window · case 03

A stale event is added to the dropped list again in every later window.

MIDI event timing◈ Members↗
FA-81634

Lookahead scheduler dispatch windows: dropped events reported every window · case 04

A stale event is added to the dropped list again in every later window.

MIDI event timing◈ Members↗
FA-81635

Lookahead scheduler dispatch windows: dropped events reported every window · case 05

A stale event is added to the dropped list again in every later window.

MIDI event timing◈ Members↗
FA-81636

Lookahead scheduler dispatch windows: events dispatched in insertion order · case 01

Events inserted out of time order are dispatched out of order within a window.

MIDI event timing● Open access↗
FA-81637

Lookahead scheduler dispatch windows: events dispatched in insertion order · case 02

Events inserted out of time order are dispatched out of order within a window.

MIDI event timing◈ Members↗
FA-81638

Lookahead scheduler dispatch windows: events dispatched in insertion order · case 03

Events inserted out of time order are dispatched out of order within a window.

MIDI event timing◈ Members↗
FA-81639

Lookahead scheduler dispatch windows: events dispatched in insertion order · case 04

Events inserted out of time order are dispatched out of order within a window.

MIDI event timing◈ Members↗
FA-81640

Lookahead scheduler dispatch windows: events dispatched in insertion order · case 05

Events inserted out of time order are dispatched out of order within a window.

MIDI event timing◈ Members↗
FA-81641

14-bit pitch bend to cents: centre position reads as a small upward bend · case 01

The neutral bend (lsb 0, msb 64) reports a nonzero offset instead of exactly 0 cents at wide ranges.

MIDI event timing● Open access↗
FA-81642

14-bit pitch bend to cents: centre position reads as a small upward bend · case 02

The neutral bend (lsb 0, msb 64) reports a nonzero offset instead of exactly 0 cents at wide ranges.

MIDI event timing◈ Members↗
FA-81643

14-bit pitch bend to cents: centre position reads as a small upward bend · case 03

The neutral bend (lsb 0, msb 64) reports a nonzero offset instead of exactly 0 cents at wide ranges.

MIDI event timing◈ Members↗
FA-81644

14-bit pitch bend to cents: centre position reads as a small upward bend · case 04

The neutral bend (lsb 0, msb 64) reports a nonzero offset instead of exactly 0 cents at wide ranges.

MIDI event timing◈ Members↗
FA-81645

14-bit pitch bend to cents: centre position reads as a small upward bend · case 05

The neutral bend (lsb 0, msb 64) reports a nonzero offset instead of exactly 0 cents at wide ranges.

MIDI event timing◈ Members↗
FA-81646

14-bit pitch bend to cents: maximum bend falls short of the range · case 01

Full upward bend (127, 127) on a 48-semitone MPE range reports 4799 cents instead of exactly 4800.

MIDI event timing● Open access↗
FA-81647

14-bit pitch bend to cents: maximum bend falls short of the range · case 02

Full upward bend (127, 127) on a 48-semitone MPE range reports 4799 cents instead of exactly 4800.

MIDI event timing◈ Members↗
FA-81648

14-bit pitch bend to cents: maximum bend falls short of the range · case 03

Full upward bend (127, 127) on a 48-semitone MPE range reports 4799 cents instead of exactly 4800.

MIDI event timing◈ Members↗
FA-81649

14-bit pitch bend to cents: maximum bend falls short of the range · case 04

Full upward bend (127, 127) on a 48-semitone MPE range reports 4799 cents instead of exactly 4800.

MIDI event timing◈ Members↗
FA-81650

14-bit pitch bend to cents: maximum bend falls short of the range · case 05

Full upward bend (127, 127) on a 48-semitone MPE range reports 4799 cents instead of exactly 4800.

MIDI event timing◈ Members↗
FA-81651

14-bit pitch bend to cents: cents truncated · case 01

A bend worth 12.5 cents reports 12 and fractional values always shrink toward zero.

MIDI event timing● Open access↗
FA-81652

14-bit pitch bend to cents: cents truncated · case 02

A bend worth 12.5 cents reports 12 and fractional values always shrink toward zero.

MIDI event timing◈ Members↗
FA-81653

14-bit pitch bend to cents: cents truncated · case 03

A bend worth 12.5 cents reports 12 and fractional values always shrink toward zero.

MIDI event timing◈ Members↗
FA-81654

14-bit pitch bend to cents: cents truncated · case 04

A bend worth 12.5 cents reports 12 and fractional values always shrink toward zero.

MIDI event timing◈ Members↗
FA-81655

14-bit pitch bend to cents: cents truncated · case 05

A bend worth 12.5 cents reports 12 and fractional values always shrink toward zero.

MIDI event timing◈ Members↗
FA-81656

14-bit pitch bend to cents: eight-bit data bytes accepted · case 01

A data byte of 128 (a status byte) is accepted and folded into the bend value.

MIDI event timing● Open access↗
FA-81657

14-bit pitch bend to cents: eight-bit data bytes accepted · case 02

A data byte of 128 (a status byte) is accepted and folded into the bend value.

MIDI event timing◈ Members↗
FA-81658

14-bit pitch bend to cents: eight-bit data bytes accepted · case 03

A data byte of 128 (a status byte) is accepted and folded into the bend value.

MIDI event timing◈ Members↗
FA-81659

14-bit pitch bend to cents: eight-bit data bytes accepted · case 04

A data byte of 128 (a status byte) is accepted and folded into the bend value.

MIDI event timing◈ Members↗
FA-81660

14-bit pitch bend to cents: eight-bit data bytes accepted · case 05

A data byte of 128 (a status byte) is accepted and folded into the bend value.

MIDI event timing◈ Members↗
FA-81661

Sustain pedal note-off deferral: controller value 64 treated as pedal up · case 01

A pedal sending exactly 64 does not sustain: notes end at their note-off.

MIDI event timing● Open access↗
FA-81662

Sustain pedal note-off deferral: controller value 64 treated as pedal up · case 02

A pedal sending exactly 64 does not sustain: notes end at their note-off.

MIDI event timing◈ Members↗
FA-81663

Sustain pedal note-off deferral: controller value 64 treated as pedal up · case 03

A pedal sending exactly 64 does not sustain: notes end at their note-off.

MIDI event timing◈ Members↗
FA-81664

Sustain pedal note-off deferral: controller value 64 treated as pedal up · case 04

A pedal sending exactly 64 does not sustain: notes end at their note-off.

MIDI event timing◈ Members↗
FA-81665

Sustain pedal note-off deferral: controller value 64 treated as pedal up · case 05

A pedal sending exactly 64 does not sustain: notes end at their note-off.

MIDI event timing◈ Members↗
FA-81666

Sustain pedal note-off deferral: re-struck sustained note released early by the pedal · case 01

A note re-struck while sustained, and still held by the key, is cut off when the pedal lifts.

MIDI event timing● Open access↗
FA-81667

Sustain pedal note-off deferral: re-struck sustained note released early by the pedal · case 02

A note re-struck while sustained, and still held by the key, is cut off when the pedal lifts.

MIDI event timing◈ Members↗
FA-81668

Sustain pedal note-off deferral: re-struck sustained note released early by the pedal · case 03

A note re-struck while sustained, and still held by the key, is cut off when the pedal lifts.

MIDI event timing◈ Members↗
FA-81669

Sustain pedal note-off deferral: re-struck sustained note released early by the pedal · case 04

A note re-struck while sustained, and still held by the key, is cut off when the pedal lifts.

MIDI event timing◈ Members↗
FA-81670

Sustain pedal note-off deferral: re-struck sustained note released early by the pedal · case 05

A note re-struck while sustained, and still held by the key, is cut off when the pedal lifts.

MIDI event timing◈ Members↗
FA-81671

Sustain pedal note-off deferral: overlapping re-strike overwrites the earlier note · case 01

Striking a note again while its key is still down loses the first instance entirely.

MIDI event timing● Open access↗
FA-81672

Sustain pedal note-off deferral: overlapping re-strike overwrites the earlier note · case 02

Striking a note again while its key is still down loses the first instance entirely.

MIDI event timing◈ Members↗
FA-81673

Sustain pedal note-off deferral: overlapping re-strike overwrites the earlier note · case 03

Striking a note again while its key is still down loses the first instance entirely.

MIDI event timing◈ Members↗
FA-81674

Sustain pedal note-off deferral: overlapping re-strike overwrites the earlier note · case 04

Striking a note again while its key is still down loses the first instance entirely.

MIDI event timing◈ Members↗
FA-81675

Sustain pedal note-off deferral: overlapping re-strike overwrites the earlier note · case 05

Striking a note again while its key is still down loses the first instance entirely.

MIDI event timing◈ Members↗
FA-81676

Sustain pedal note-off deferral: notes sounding at the end vanish · case 01

Notes still held by the key or pedal when the events end are missing from the output.

MIDI event timing● Open access↗
FA-81677

Sustain pedal note-off deferral: notes sounding at the end vanish · case 02

Notes still held by the key or pedal when the events end are missing from the output.

MIDI event timing◈ Members↗
FA-81678

Sustain pedal note-off deferral: notes sounding at the end vanish · case 03

Notes still held by the key or pedal when the events end are missing from the output.

MIDI event timing◈ Members↗
FA-81679

Sustain pedal note-off deferral: notes sounding at the end vanish · case 04

Notes still held by the key or pedal when the events end are missing from the output.

MIDI event timing◈ Members↗
FA-81680

Sustain pedal note-off deferral: notes sounding at the end vanish · case 05

Notes still held by the key or pedal when the events end are missing from the output.

MIDI event timing◈ Members↗
FA-81681

Loop-region playback event firing: loop wraps to the song start · case 01

After the first pass the song position jumps to tick 0 instead of the loop start, replaying the intro.

MIDI event timing● Open access↗
FA-81682

Loop-region playback event firing: loop wraps to the song start · case 02

After the first pass the song position jumps to tick 0 instead of the loop start, replaying the intro.

MIDI event timing◈ Members↗
FA-81683

Loop-region playback event firing: loop wraps to the song start · case 03

After the first pass the song position jumps to tick 0 instead of the loop start, replaying the intro.

MIDI event timing◈ Members↗
FA-81684

Loop-region playback event firing: loop wraps to the song start · case 04

After the first pass the song position jumps to tick 0 instead of the loop start, replaying the intro.

MIDI event timing◈ Members↗
FA-81685

Loop-region playback event firing: loop wraps to the song start · case 05

After the first pass the song position jumps to tick 0 instead of the loop start, replaying the intro.

MIDI event timing◈ Members↗
FA-81686

Loop-region playback event firing: loop length counted inclusively · case 01

Each loop pass is one tick too long, so events drift later on every repetition.

MIDI event timing● Open access↗
FA-81687

Loop-region playback event firing: loop length counted inclusively · case 02

Each loop pass is one tick too long, so events drift later on every repetition.

MIDI event timing◈ Members↗
FA-81688

Loop-region playback event firing: loop length counted inclusively · case 03

Each loop pass is one tick too long, so events drift later on every repetition.

MIDI event timing◈ Members↗
FA-81689

Loop-region playback event firing: loop length counted inclusively · case 04

Each loop pass is one tick too long, so events drift later on every repetition.

MIDI event timing◈ Members↗
FA-81690

Loop-region playback event firing: loop length counted inclusively · case 05

Each loop pass is one tick too long, so events drift later on every repetition.

MIDI event timing◈ Members↗
FA-81691

Loop-region playback event firing: playback may start on the loop end · case 01

Starting playback exactly at the loop end is accepted and immediately wraps, instead of being rejected.

MIDI event timing● Open access↗
FA-81692

Loop-region playback event firing: playback may start on the loop end · case 02

Starting playback exactly at the loop end is accepted and immediately wraps, instead of being rejected.

MIDI event timing◈ Members↗
FA-81693

Loop-region playback event firing: playback may start on the loop end · case 03

Starting playback exactly at the loop end is accepted and immediately wraps, instead of being rejected.

MIDI event timing◈ Members↗
FA-81694

Loop-region playback event firing: playback may start on the loop end · case 04

Starting playback exactly at the loop end is accepted and immediately wraps, instead of being rejected.

MIDI event timing◈ Members↗
FA-81695

Loop-region playback event firing: playback may start on the loop end · case 05

Starting playback exactly at the loop end is accepted and immediately wraps, instead of being rejected.

MIDI event timing◈ Members↗
FA-81696

Tick resolution conversion preserving note length: converted ticks truncated · case 01

Events that fall between target ticks always move earlier, e.g. tick 3 at 2:1 becomes 1 instead of 2.

MIDI event timing● Open access↗
FA-81697

Tick resolution conversion preserving note length: converted ticks truncated · case 02

Events that fall between target ticks always move earlier, e.g. tick 3 at 2:1 becomes 1 instead of 2.

MIDI event timing◈ Members↗
FA-81698

Tick resolution conversion preserving note length: converted ticks truncated · case 03

Events that fall between target ticks always move earlier, e.g. tick 3 at 2:1 becomes 1 instead of 2.

MIDI event timing◈ Members↗
FA-81699

Tick resolution conversion preserving note length: converted ticks truncated · case 04

Events that fall between target ticks always move earlier, e.g. tick 3 at 2:1 becomes 1 instead of 2.

MIDI event timing◈ Members↗
FA-81700

Tick resolution conversion preserving note length: converted ticks truncated · case 05

Events that fall between target ticks always move earlier, e.g. tick 3 at 2:1 becomes 1 instead of 2.

MIDI event timing◈ 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 ↗