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
ITF-14 accepts the Code 128 minimum X-dimension · case 01
Carton labels are printed with bars too thin for distribution-centre scanners.
ITF-14 accepts the Code 128 minimum X-dimension · case 02
Carton labels are printed with bars too thin for distribution-centre scanners.
ITF-14 accepts the Code 128 minimum X-dimension · case 03
Carton labels are printed with bars too thin for distribution-centre scanners.
ITF-14 accepts the Code 128 minimum X-dimension · case 04
Carton labels are printed with bars too thin for distribution-centre scanners.
ITF-14 accepts the Code 128 minimum X-dimension · case 05
Carton labels are printed with bars too thin for distribution-centre scanners.
Add-ons are allowed on Code 128 · case 01
Layouts reserve space for an EAN-5 next to a Code 128 symbol that scanners will never read together.
Add-ons are allowed on Code 128 · case 02
Layouts reserve space for an EAN-5 next to a Code 128 symbol that scanners will never read together.
Add-ons are allowed on Code 128 · case 03
Layouts reserve space for an EAN-5 next to a Code 128 symbol that scanners will never read together.
Add-ons are allowed on Code 128 · case 04
Layouts reserve space for an EAN-5 next to a Code 128 symbol that scanners will never read together.
Add-ons are allowed on Code 128 · case 05
Layouts reserve space for an EAN-5 next to a Code 128 symbol that scanners will never read together.
Add-on has no trailing quiet zone · case 01
The add-on runs into the label edge and its last digit is misread.
Add-on has no trailing quiet zone · case 02
The add-on runs into the label edge and its last digit is misread.
Add-on has no trailing quiet zone · case 03
The add-on runs into the label edge and its last digit is misread.
Add-on has no trailing quiet zone · case 04
The add-on runs into the label edge and its last digit is misread.
Add-on has no trailing quiet zone · case 05
The add-on runs into the label edge and its last digit is misread.
ITF puts the second digit of each pair in the bars · case 01
Every digit pair scans reversed, so 1234 reads as 2143.
ITF puts the second digit of each pair in the bars · case 02
Every digit pair scans reversed, so 1234 reads as 2143.
ITF puts the second digit of each pair in the bars · case 03
Every digit pair scans reversed, so 1234 reads as 2143.
ITF puts the second digit of each pair in the bars · case 04
Every digit pair scans reversed, so 1234 reads as 2143.
ITF puts the second digit of each pair in the bars · case 05
Every digit pair scans reversed, so 1234 reads as 2143.
ITF pads odd-length data with a trailing zero · case 01
A five-digit value 12345 scans as 123450, changing its magnitude.
ITF pads odd-length data with a trailing zero · case 02
A five-digit value 12345 scans as 123450, changing its magnitude.
ITF pads odd-length data with a trailing zero · case 03
A five-digit value 12345 scans as 123450, changing its magnitude.
ITF pads odd-length data with a trailing zero · case 04
A five-digit value 12345 scans as 123450, changing its magnitude.
ITF pads odd-length data with a trailing zero · case 05
A five-digit value 12345 scans as 123450, changing its magnitude.
ITF stop pattern is written narrow-narrow-wide · case 01
Scanners fail to find the stop pattern when reading right to left.
ITF stop pattern is written narrow-narrow-wide · case 02
Scanners fail to find the stop pattern when reading right to left.
ITF stop pattern is written narrow-narrow-wide · case 03
Scanners fail to find the stop pattern when reading right to left.
ITF stop pattern is written narrow-narrow-wide · case 04
Scanners fail to find the stop pattern when reading right to left.
ITF stop pattern is written narrow-narrow-wide · case 05
Scanners fail to find the stop pattern when reading right to left.
ITF encodes zero with no wide elements · case 01
Any zero digit makes the pair undecodable because each digit must have exactly two wide elements.
ITF encodes zero with no wide elements · case 02
Any zero digit makes the pair undecodable because each digit must have exactly two wide elements.
ITF encodes zero with no wide elements · case 03
Any zero digit makes the pair undecodable because each digit must have exactly two wide elements.
ITF encodes zero with no wide elements · case 04
Any zero digit makes the pair undecodable because each digit must have exactly two wide elements.
ITF encodes zero with no wide elements · case 05
Any zero digit makes the pair undecodable because each digit must have exactly two wide elements.
ITF encodes an empty string as start and stop only · case 01
Blank quantity fields produce a symbol that scans as nothing instead of an error.
ITF encodes an empty string as start and stop only · case 02
Blank quantity fields produce a symbol that scans as nothing instead of an error.
ITF encodes an empty string as start and stop only · case 03
Blank quantity fields produce a symbol that scans as nothing instead of an error.
ITF encodes an empty string as start and stop only · case 04
Blank quantity fields produce a symbol that scans as nothing instead of an error.
ITF encodes an empty string as start and stop only · case 05
Blank quantity fields produce a symbol that scans as nothing instead of an error.
ITF data elements ignore the configured wide ratio · case 01
Symbols printed at a 3:1 ratio have data elements at 2:1 but a 3:1 stop bar.
ITF data elements ignore the configured wide ratio · case 02
Symbols printed at a 3:1 ratio have data elements at 2:1 but a 3:1 stop bar.
ITF data elements ignore the configured wide ratio · case 03
Symbols printed at a 3:1 ratio have data elements at 2:1 but a 3:1 stop bar.
ITF data elements ignore the configured wide ratio · case 04
Symbols printed at a 3:1 ratio have data elements at 2:1 but a 3:1 stop bar.
ITF data elements ignore the configured wide ratio · case 05
Symbols printed at a 3:1 ratio have data elements at 2:1 but a 3:1 stop bar.
Codabar gives dash and dollar three wide elements · case 01
Blood-bag and library labels containing "-" are laid out wider than printed.
Codabar gives dash and dollar three wide elements · case 02
Blood-bag and library labels containing "-" are laid out wider than printed.
Codabar gives dash and dollar three wide elements · case 03
Blood-bag and library labels containing "-" are laid out wider than printed.
Codabar gives dash and dollar three wide elements · case 04
Blood-bag and library labels containing "-" are laid out wider than printed.
Codabar gives dash and dollar three wide elements · case 05
Blood-bag and library labels containing "-" are laid out wider than printed.
Codabar accepts lowercase start and stop letters · case 01
Symbols framed with lowercase letters are passed to a font that has no glyphs for them.
Codabar accepts lowercase start and stop letters · case 02
Symbols framed with lowercase letters are passed to a font that has no glyphs for them.
Codabar accepts lowercase start and stop letters · case 03
Symbols framed with lowercase letters are passed to a font that has no glyphs for them.
Codabar accepts lowercase start and stop letters · case 04
Symbols framed with lowercase letters are passed to a font that has no glyphs for them.
Codabar accepts lowercase start and stop letters · case 05
Symbols framed with lowercase letters are passed to a font that has no glyphs for them.
Codabar width adds a gap after the stop character · case 01
The symbol is one narrow module wider than the layout expects.
Codabar width adds a gap after the stop character · case 02
The symbol is one narrow module wider than the layout expects.
Codabar width adds a gap after the stop character · case 03
The symbol is one narrow module wider than the layout expects.
Codabar width adds a gap after the stop character · case 04
The symbol is one narrow module wider than the layout expects.
Codabar width adds a gap after the stop character · case 05
The symbol is one narrow module wider than the layout expects.
Codabar rejects symbols with an empty body · case 01
A start/stop pair used as a separator label cannot be printed.
Codabar rejects symbols with an empty body · case 02
A start/stop pair used as a separator label cannot be printed.
Codabar rejects symbols with an empty body · case 03
A start/stop pair used as a separator label cannot be printed.
Codabar rejects symbols with an empty body · case 04
A start/stop pair used as a separator label cannot be printed.
Codabar rejects symbols with an empty body · case 05
A start/stop pair used as a separator label cannot be printed.
Codabar start and stop characters are sized like digits · case 01
Every symbol is two wide elements shorter than printed, so the layout clips the stop character.
Codabar start and stop characters are sized like digits · case 02
Every symbol is two wide elements shorter than printed, so the layout clips the stop character.
Codabar start and stop characters are sized like digits · case 03
Every symbol is two wide elements shorter than printed, so the layout clips the stop character.
Codabar start and stop characters are sized like digits · case 04
Every symbol is two wide elements shorter than printed, so the layout clips the stop character.
Codabar start and stop characters are sized like digits · case 05
Every symbol is two wide elements shorter than printed, so the layout clips the stop character.
Codabar accepts ratios above 3 · case 01
Oversized wide elements push the symbol beyond its allocated width.
Codabar accepts ratios above 3 · case 02
Oversized wide elements push the symbol beyond its allocated width.
Codabar accepts ratios above 3 · case 03
Oversized wide elements push the symbol beyond its allocated width.
Codabar accepts ratios above 3 · case 04
Oversized wide elements push the symbol beyond its allocated width.
Codabar accepts ratios above 3 · case 05
Oversized wide elements push the symbol beyond its allocated width.
GS1-128 inserts FNC1 after fixed-length fields · case 01
Labels waste a symbol character after every GTIN and date and some parsers reject the extra separator.
GS1-128 inserts FNC1 after fixed-length fields · case 02
Labels waste a symbol character after every GTIN and date and some parsers reject the extra separator.
GS1-128 inserts FNC1 after fixed-length fields · case 03
Labels waste a symbol character after every GTIN and date and some parsers reject the extra separator.
GS1-128 inserts FNC1 after fixed-length fields · case 04
Labels waste a symbol character after every GTIN and date and some parsers reject the extra separator.
GS1-128 inserts FNC1 after fixed-length fields · case 05
Labels waste a symbol character after every GTIN and date and some parsers reject the extra separator.
GS1-128 ends with a dangling FNC1 · case 01
Batch or serial fields at the end of the label are followed by a separator that decoders report as an empty field.
GS1-128 ends with a dangling FNC1 · case 02
Batch or serial fields at the end of the label are followed by a separator that decoders report as an empty field.
GS1-128 ends with a dangling FNC1 · case 03
Batch or serial fields at the end of the label are followed by a separator that decoders report as an empty field.
GS1-128 ends with a dangling FNC1 · case 04
Batch or serial fields at the end of the label are followed by a separator that decoders report as an empty field.
GS1-128 ends with a dangling FNC1 · case 05
Batch or serial fields at the end of the label are followed by a separator that decoders report as an empty field.
Expiry date AI expects eight digits · case 01
YYMMDD expiry dates are rejected while YYYYMMDD values are accepted.
Expiry date AI expects eight digits · case 02
YYMMDD expiry dates are rejected while YYYYMMDD values are accepted.
Expiry date AI expects eight digits · case 03
YYMMDD expiry dates are rejected while YYYYMMDD values are accepted.
Expiry date AI expects eight digits · case 04
YYMMDD expiry dates are rejected while YYYYMMDD values are accepted.
Expiry date AI expects eight digits · case 05
YYMMDD expiry dates are rejected while YYYYMMDD values are accepted.
Empty batch numbers are accepted · case 01
A blank batch field yields an AI with no data followed by FNC1.
Empty batch numbers are accepted · case 02
A blank batch field yields an AI with no data followed by FNC1.
Empty batch numbers are accepted · case 03
A blank batch field yields an AI with no data followed by FNC1.
Empty batch numbers are accepted · case 04
A blank batch field yields an AI with no data followed by FNC1.
Empty batch numbers are accepted · case 05
A blank batch field yields an AI with no data followed by FNC1.
Count AIs accept letters · case 01
A quantity field with a letter passes validation and fails downstream EDI parsing.
Count AIs accept letters · case 02
A quantity field with a letter passes validation and fails downstream EDI parsing.
Count AIs accept letters · case 03
A quantity field with a letter passes validation and fails downstream EDI parsing.
Count AIs accept letters · case 04
A quantity field with a letter passes validation and fails downstream EDI parsing.
Count AIs accept letters · case 05
A quantity field with a letter passes validation and fails downstream EDI parsing.
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 ↗