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

Tick resolution conversion preserving note length: short notes collapse to zero length · case 01

A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.

MIDI event timing● Open access↗
FA-81702

Tick resolution conversion preserving note length: short notes collapse to zero length · case 02

A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.

MIDI event timing◈ Members↗
FA-81703

Tick resolution conversion preserving note length: short notes collapse to zero length · case 03

A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.

MIDI event timing◈ Members↗
FA-81704

Tick resolution conversion preserving note length: short notes collapse to zero length · case 04

A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.

MIDI event timing◈ Members↗
FA-81705

Tick resolution conversion preserving note length: short notes collapse to zero length · case 05

A one-tick note converted to a coarser resolution ends on the same tick it starts, so it is inaudible.

MIDI event timing◈ Members↗
FA-81706

Tick resolution conversion preserving note length: ratio applied upside down · case 01

Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.

MIDI event timing● Open access↗
FA-81707

Tick resolution conversion preserving note length: ratio applied upside down · case 02

Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.

MIDI event timing◈ Members↗
FA-81708

Tick resolution conversion preserving note length: ratio applied upside down · case 03

Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.

MIDI event timing◈ Members↗
FA-81709

Tick resolution conversion preserving note length: ratio applied upside down · case 04

Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.

MIDI event timing◈ Members↗
FA-81710

Tick resolution conversion preserving note length: ratio applied upside down · case 05

Converting 480 ppq to 96 ppq multiplies ticks by five instead of dividing.

MIDI event timing◈ Members↗
FA-81711

Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 01

With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.

MIDI event timing● Open access↗
FA-81712

Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 02

With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.

MIDI event timing◈ Members↗
FA-81713

Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 03

With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.

MIDI event timing◈ Members↗
FA-81714

Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 04

With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.

MIDI event timing◈ Members↗
FA-81715

Tick resolution conversion preserving note length: overlapping notes matched to the latest note-on · case 05

With two overlapping same-pitch notes, the length guard compares the first note-off with the second note-on.

MIDI event timing◈ Members↗
FA-81716

Active sensing timeout detection: exact 300 ms gap reported as timeout · case 01

A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.

MIDI event timing● Open access↗
FA-81717

Active sensing timeout detection: exact 300 ms gap reported as timeout · case 02

A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.

MIDI event timing◈ Members↗
FA-81718

Active sensing timeout detection: exact 300 ms gap reported as timeout · case 03

A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.

MIDI event timing◈ Members↗
FA-81719

Active sensing timeout detection: exact 300 ms gap reported as timeout · case 04

A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.

MIDI event timing◈ Members↗
FA-81720

Active sensing timeout detection: exact 300 ms gap reported as timeout · case 05

A gap of exactly 300 ms triggers a timeout although only gaps longer than 300 ms should.

MIDI event timing◈ Members↗
FA-81721

Active sensing timeout detection: only sensing messages refresh the timer · case 01

A stream with regular note messages but sparse sense messages times out although traffic never stopped.

MIDI event timing● Open access↗
FA-81722

Active sensing timeout detection: only sensing messages refresh the timer · case 02

A stream with regular note messages but sparse sense messages times out although traffic never stopped.

MIDI event timing◈ Members↗
FA-81723

Active sensing timeout detection: only sensing messages refresh the timer · case 03

A stream with regular note messages but sparse sense messages times out although traffic never stopped.

MIDI event timing◈ Members↗
FA-81724

Active sensing timeout detection: only sensing messages refresh the timer · case 04

A stream with regular note messages but sparse sense messages times out although traffic never stopped.

MIDI event timing◈ Members↗
FA-81725

Active sensing timeout detection: only sensing messages refresh the timer · case 05

A stream with regular note messages but sparse sense messages times out although traffic never stopped.

MIDI event timing◈ Members↗
FA-81726

Active sensing timeout detection: silence after the last message never times out · case 01

When sensing stops and no further messages arrive, no timeout is reported before end_time.

MIDI event timing● Open access↗
FA-81727

Active sensing timeout detection: silence after the last message never times out · case 02

When sensing stops and no further messages arrive, no timeout is reported before end_time.

MIDI event timing◈ Members↗
FA-81728

Active sensing timeout detection: silence after the last message never times out · case 03

When sensing stops and no further messages arrive, no timeout is reported before end_time.

MIDI event timing◈ Members↗
FA-81729

Active sensing timeout detection: silence after the last message never times out · case 04

When sensing stops and no further messages arrive, no timeout is reported before end_time.

MIDI event timing◈ Members↗
FA-81730

Active sensing timeout detection: silence after the last message never times out · case 05

When sensing stops and no further messages arrive, no timeout is reported before end_time.

MIDI event timing◈ Members↗
FA-81731

Active sensing timeout detection: timeout stamped at the next message arrival · case 01

A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.

MIDI event timing● Open access↗
FA-81732

Active sensing timeout detection: timeout stamped at the next message arrival · case 02

A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.

MIDI event timing◈ Members↗
FA-81733

Active sensing timeout detection: timeout stamped at the next message arrival · case 03

A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.

MIDI event timing◈ Members↗
FA-81734

Active sensing timeout detection: timeout stamped at the next message arrival · case 04

A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.

MIDI event timing◈ Members↗
FA-81735

Active sensing timeout detection: timeout stamped at the next message arrival · case 05

A timeout is reported when the late message finally arrives instead of 300 ms after the last activity.

MIDI event timing◈ Members↗
FA-81736

Same-pitch and monophonic overlap truncation: zero-length notes kept · case 01

A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.

MIDI event timing● Open access↗
FA-81737

Same-pitch and monophonic overlap truncation: zero-length notes kept · case 02

A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.

MIDI event timing◈ Members↗
FA-81738

Same-pitch and monophonic overlap truncation: zero-length notes kept · case 03

A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.

MIDI event timing◈ Members↗
FA-81739

Same-pitch and monophonic overlap truncation: zero-length notes kept · case 04

A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.

MIDI event timing◈ Members↗
FA-81740

Same-pitch and monophonic overlap truncation: zero-length notes kept · case 05

A note truncated to nothing (or given with start equal to end) is still emitted with zero duration.

MIDI event timing◈ Members↗
FA-81741

Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 01

In mono mode a held note keeps sounding under the next note of a different pitch.

MIDI event timing● Open access↗
FA-81742

Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 02

In mono mode a held note keeps sounding under the next note of a different pitch.

MIDI event timing◈ Members↗
FA-81743

Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 03

In mono mode a held note keeps sounding under the next note of a different pitch.

MIDI event timing◈ Members↗
FA-81744

Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 04

In mono mode a held note keeps sounding under the next note of a different pitch.

MIDI event timing◈ Members↗
FA-81745

Same-pitch and monophonic overlap truncation: mono mode truncates only same-pitch overlaps · case 05

In mono mode a held note keeps sounding under the next note of a different pitch.

MIDI event timing◈ Members↗
FA-81746

Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 01

When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.

MIDI event timing● Open access↗
FA-81747

Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 02

When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.

MIDI event timing◈ Members↗
FA-81748

Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 03

When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.

MIDI event timing◈ Members↗
FA-81749

Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 04

When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.

MIDI event timing◈ Members↗
FA-81750

Same-pitch and monophonic overlap truncation: overlaps resolved in input order · case 05

When notes are listed out of time order, the later-listed earlier note is never truncated by the note that follows it in time.

MIDI event timing◈ Members↗
FA-81751

Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 01

A short note followed later by the same pitch is lengthened up to that next start (legato fill).

MIDI event timing● Open access↗
FA-81752

Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 02

A short note followed later by the same pitch is lengthened up to that next start (legato fill).

MIDI event timing◈ Members↗
FA-81753

Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 03

A short note followed later by the same pitch is lengthened up to that next start (legato fill).

MIDI event timing◈ Members↗
FA-81754

Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 04

A short note followed later by the same pitch is lengthened up to that next start (legato fill).

MIDI event timing◈ Members↗
FA-81755

Same-pitch and monophonic overlap truncation: short notes stretched to the next start · case 05

A short note followed later by the same pitch is lengthened up to that next start (legato fill).

MIDI event timing◈ Members↗
FA-81756

Time Signature meta event decoding: denominator byte used as the denominator · case 01

4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.

MIDI event timing● Open access↗
FA-81757

Time Signature meta event decoding: denominator byte used as the denominator · case 02

4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.

MIDI event timing◈ Members↗
FA-81758

Time Signature meta event decoding: denominator byte used as the denominator · case 03

4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.

MIDI event timing◈ Members↗
FA-81759

Time Signature meta event decoding: denominator byte used as the denominator · case 04

4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.

MIDI event timing◈ Members↗
FA-81760

Time Signature meta event decoding: denominator byte used as the denominator · case 05

4/4 decodes as 4/2 and 6/8 as 6/3, because the stored power of two is not expanded.

MIDI event timing◈ Members↗
FA-81761

Time Signature meta event decoding: metronome click left in MIDI clocks · case 01

The click interval is reported as 24 instead of 480 ticks at 480 ppq.

MIDI event timing● Open access↗
FA-81762

Time Signature meta event decoding: metronome click left in MIDI clocks · case 02

The click interval is reported as 24 instead of 480 ticks at 480 ppq.

MIDI event timing◈ Members↗
FA-81763

Time Signature meta event decoding: metronome click left in MIDI clocks · case 03

The click interval is reported as 24 instead of 480 ticks at 480 ppq.

MIDI event timing◈ Members↗
FA-81764

Time Signature meta event decoding: metronome click left in MIDI clocks · case 04

The click interval is reported as 24 instead of 480 ticks at 480 ppq.

MIDI event timing◈ Members↗
FA-81765

Time Signature meta event decoding: metronome click left in MIDI clocks · case 05

The click interval is reported as 24 instead of 480 ticks at 480 ppq.

MIDI event timing◈ Members↗
FA-81766

Time Signature meta event decoding: bar length counted in quarter notes · case 01

A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.

MIDI event timing● Open access↗
FA-81767

Time Signature meta event decoding: bar length counted in quarter notes · case 02

A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.

MIDI event timing◈ Members↗
FA-81768

Time Signature meta event decoding: bar length counted in quarter notes · case 03

A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.

MIDI event timing◈ Members↗
FA-81769

Time Signature meta event decoding: bar length counted in quarter notes · case 04

A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.

MIDI event timing◈ Members↗
FA-81770

Time Signature meta event decoding: bar length counted in quarter notes · case 05

A 6/8 bar is reported as 2880 ticks (six quarters) instead of 1440.

MIDI event timing◈ Members↗
FA-81771

Time Signature meta event decoding: declared length of time signature not checked · case 01

A malformed event declaring length 5 or 3 is decoded as if valid.

MIDI event timing● Open access↗
FA-81772

Time Signature meta event decoding: declared length of time signature not checked · case 02

A malformed event declaring length 5 or 3 is decoded as if valid.

MIDI event timing◈ Members↗
FA-81773

Time Signature meta event decoding: declared length of time signature not checked · case 03

A malformed event declaring length 5 or 3 is decoded as if valid.

MIDI event timing◈ Members↗
FA-81774

Time Signature meta event decoding: declared length of time signature not checked · case 04

A malformed event declaring length 5 or 3 is decoded as if valid.

MIDI event timing◈ Members↗
FA-81775

Time Signature meta event decoding: declared length of time signature not checked · case 05

A malformed event declaring length 5 or 3 is decoded as if valid.

MIDI event timing◈ Members↗
FA-81776

Channel note message encoder with running status: channel range validated as zero-based · case 01

Channel 16 is rejected and channel 0 is accepted, producing a negative status value.

MIDI event timing● Open access↗
FA-81777

Channel note message encoder with running status: channel range validated as zero-based · case 02

Channel 16 is rejected and channel 0 is accepted, producing a negative status value.

MIDI event timing◈ Members↗
FA-81778

Channel note message encoder with running status: channel range validated as zero-based · case 03

Channel 16 is rejected and channel 0 is accepted, producing a negative status value.

MIDI event timing◈ Members↗
FA-81779

Channel note message encoder with running status: channel range validated as zero-based · case 04

Channel 16 is rejected and channel 0 is accepted, producing a negative status value.

MIDI event timing◈ Members↗
FA-81780

Channel note message encoder with running status: channel range validated as zero-based · case 05

Channel 16 is rejected and channel 0 is accepted, producing a negative status value.

MIDI event timing◈ Members↗
FA-81781

Channel note message encoder with running status: running-status note-off carries a release velocity · case 01

With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.

MIDI event timing● Open access↗
FA-81782

Channel note message encoder with running status: running-status note-off carries a release velocity · case 02

With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.

MIDI event timing◈ Members↗
FA-81783

Channel note message encoder with running status: running-status note-off carries a release velocity · case 03

With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.

MIDI event timing◈ Members↗
FA-81784

Channel note message encoder with running status: running-status note-off carries a release velocity · case 04

With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.

MIDI event timing◈ Members↗
FA-81785

Channel note message encoder with running status: running-status note-off carries a release velocity · case 05

With running status on, a note-off with release velocity 40 is sent as a note-on with velocity 40, retriggering the note.

MIDI event timing◈ Members↗
FA-81786

Channel note message encoder with running status: running status applied when disabled · case 01

Repeated status bytes are omitted even when running status is disabled.

MIDI event timing● Open access↗
FA-81787

Channel note message encoder with running status: running status applied when disabled · case 02

Repeated status bytes are omitted even when running status is disabled.

MIDI event timing◈ Members↗
FA-81788

Channel note message encoder with running status: running status applied when disabled · case 03

Repeated status bytes are omitted even when running status is disabled.

MIDI event timing◈ Members↗
FA-81789

Channel note message encoder with running status: running status applied when disabled · case 04

Repeated status bytes are omitted even when running status is disabled.

MIDI event timing◈ Members↗
FA-81790

Channel note message encoder with running status: running status applied when disabled · case 05

Repeated status bytes are omitted even when running status is disabled.

MIDI event timing◈ Members↗
FA-81791

Channel note message encoder with running status: converted note-on sends release velocity 0 · case 01

Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.

MIDI event timing● Open access↗
FA-81792

Channel note message encoder with running status: converted note-on sends release velocity 0 · case 02

Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.

MIDI event timing◈ Members↗
FA-81793

Channel note message encoder with running status: converted note-on sends release velocity 0 · case 03

Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.

MIDI event timing◈ Members↗
FA-81794

Channel note message encoder with running status: converted note-on sends release velocity 0 · case 04

Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.

MIDI event timing◈ Members↗
FA-81795

Channel note message encoder with running status: converted note-on sends release velocity 0 · case 05

Without running status, a velocity-0 note-on becomes a note-off with release velocity 0 instead of the stipulated 64.

MIDI event timing◈ Members↗
FA-81796

Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 01

A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.

MIDI event timing● Open access↗
FA-81797

Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 02

A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.

MIDI event timing◈ Members↗
FA-81798

Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 03

A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.

MIDI event timing◈ Members↗
FA-81799

Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 04

A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.

MIDI event timing◈ Members↗
FA-81800

Channel note message encoder with running status: velocity-zero note-on sent as note-on · case 05

A velocity-0 note-on is emitted in note-on form even without running status, instead of a note-off message.

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 ↗