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
QR pad codewords start with 0x11 · case 01
Strict decoders flag the pad sequence and some generators produce different symbols for the same data.
QR pad codewords start with 0x11 · case 02
Strict decoders flag the pad sequence and some generators produce different symbols for the same data.
QR pad codewords start with 0x11 · case 03
Strict decoders flag the pad sequence and some generators produce different symbols for the same data.
QR pad codewords start with 0x11 · case 04
Strict decoders flag the pad sequence and some generators produce different symbols for the same data.
QR pad codewords start with 0x11 · case 05
Strict decoders flag the pad sequence and some generators produce different symbols for the same data.
Data that exactly fills the symbol is rejected · case 01
The encoder moves to a larger version for payloads that fit exactly.
Data that exactly fills the symbol is rejected · case 02
The encoder moves to a larger version for payloads that fit exactly.
Data that exactly fills the symbol is rejected · case 03
The encoder moves to a larger version for payloads that fit exactly.
Data that exactly fills the symbol is rejected · case 04
The encoder moves to a larger version for payloads that fit exactly.
Data that exactly fills the symbol is rejected · case 05
The encoder moves to a larger version for payloads that fit exactly.
Pad alternation keyed on codeword position · case 01
Symbols with an odd number of data codewords start padding with 0x11.
Pad alternation keyed on codeword position · case 02
Symbols with an odd number of data codewords start padding with 0x11.
Pad alternation keyed on codeword position · case 03
Symbols with an odd number of data codewords start padding with 0x11.
Pad alternation keyed on codeword position · case 04
Symbols with an odd number of data codewords start padding with 0x11.
Pad alternation keyed on codeword position · case 05
Symbols with an odd number of data codewords start padding with 0x11.
Byte alignment adds a whole zero byte to aligned data · case 01
Aligned payloads gain a spurious 0x00 codeword before the pad bytes.
Byte alignment adds a whole zero byte to aligned data · case 02
Aligned payloads gain a spurious 0x00 codeword before the pad bytes.
Byte alignment adds a whole zero byte to aligned data · case 03
Aligned payloads gain a spurious 0x00 codeword before the pad bytes.
Byte alignment adds a whole zero byte to aligned data · case 04
Aligned payloads gain a spurious 0x00 codeword before the pad bytes.
Byte alignment adds a whole zero byte to aligned data · case 05
Aligned payloads gain a spurious 0x00 codeword before the pad bytes.
EAN-2 parity is chosen from the digit sum · case 01
Magazine issue numbers decode as different issues.
EAN-2 parity is chosen from the digit sum · case 02
Magazine issue numbers decode as different issues.
EAN-2 parity is chosen from the digit sum · case 03
Magazine issue numbers decode as different issues.
EAN-2 parity is chosen from the digit sum · case 04
Magazine issue numbers decode as different issues.
EAN-2 parity is chosen from the digit sum · case 05
Magazine issue numbers decode as different issues.
EAN-2 parity patterns for remainders 1 and 2 are swapped · case 01
Issue numbers with value mod 4 of 1 or 2 fail the add-on parity check at the till.
EAN-2 parity patterns for remainders 1 and 2 are swapped · case 02
Issue numbers with value mod 4 of 1 or 2 fail the add-on parity check at the till.
EAN-2 parity patterns for remainders 1 and 2 are swapped · case 03
Issue numbers with value mod 4 of 1 or 2 fail the add-on parity check at the till.
EAN-2 parity patterns for remainders 1 and 2 are swapped · case 04
Issue numbers with value mod 4 of 1 or 2 fail the add-on parity check at the till.
EAN-2 parity patterns for remainders 1 and 2 are swapped · case 05
Issue numbers with value mod 4 of 1 or 2 fail the add-on parity check at the till.
EAN-2 add-on reuses the main symbol guard · case 01
Scanners do not detect the add-on because its start pattern is one module short.
EAN-2 add-on reuses the main symbol guard · case 02
Scanners do not detect the add-on because its start pattern is one module short.
EAN-2 add-on reuses the main symbol guard · case 03
Scanners do not detect the add-on because its start pattern is one module short.
EAN-2 add-on reuses the main symbol guard · case 04
Scanners do not detect the add-on because its start pattern is one module short.
EAN-2 add-on reuses the main symbol guard · case 05
Scanners do not detect the add-on because its start pattern is one module short.
EAN-2 separator starts with a bar · case 01
The second digit is misaligned by one module and fails to decode.
EAN-2 separator starts with a bar · case 02
The second digit is misaligned by one module and fails to decode.
EAN-2 separator starts with a bar · case 03
The second digit is misaligned by one module and fails to decode.
EAN-2 separator starts with a bar · case 04
The second digit is misaligned by one module and fails to decode.
EAN-2 separator starts with a bar · case 05
The second digit is misaligned by one module and fails to decode.
Bar edges drift because the module width is rounded first · case 01
Symbols printed at fractional pixel pitches grow or shrink across their width and fail verification.
Bar edges drift because the module width is rounded first · case 02
Symbols printed at fractional pixel pitches grow or shrink across their width and fail verification.
Bar edges drift because the module width is rounded first · case 03
Symbols printed at fractional pixel pitches grow or shrink across their width and fail verification.
Bar edges drift because the module width is rounded first · case 04
Symbols printed at fractional pixel pitches grow or shrink across their width and fail verification.
Bar edges drift because the module width is rounded first · case 05
Symbols printed at fractional pixel pitches grow or shrink across their width and fail verification.
Quiet zone offset is counted in pixels · case 01
At pitches above one pixel per module the quiet zone is too small and the symbol starts too close to the label edge.
Quiet zone offset is counted in pixels · case 02
At pitches above one pixel per module the quiet zone is too small and the symbol starts too close to the label edge.
Quiet zone offset is counted in pixels · case 03
At pitches above one pixel per module the quiet zone is too small and the symbol starts too close to the label edge.
Quiet zone offset is counted in pixels · case 04
At pitches above one pixel per module the quiet zone is too small and the symbol starts too close to the label edge.
Quiet zone offset is counted in pixels · case 05
At pitches above one pixel per module the quiet zone is too small and the symbol starts too close to the label edge.
Wide bars are drawn as separate one-module bars · case 01
With bar width reduction every wide bar shows hairline gaps between its modules.
Wide bars are drawn as separate one-module bars · case 02
With bar width reduction every wide bar shows hairline gaps between its modules.
Wide bars are drawn as separate one-module bars · case 03
With bar width reduction every wide bar shows hairline gaps between its modules.
Wide bars are drawn as separate one-module bars · case 04
With bar width reduction every wide bar shows hairline gaps between its modules.
Wide bars are drawn as separate one-module bars · case 05
With bar width reduction every wide bar shows hairline gaps between its modules.
Bar width reduction is applied on both edges · case 01
Bars lose twice the intended ink-spread compensation and read as too narrow.
Bar width reduction is applied on both edges · case 02
Bars lose twice the intended ink-spread compensation and read as too narrow.
Bar width reduction is applied on both edges · case 03
Bars lose twice the intended ink-spread compensation and read as too narrow.
Bar width reduction is applied on both edges · case 04
Bars lose twice the intended ink-spread compensation and read as too narrow.
Bar width reduction is applied on both edges · case 05
Bars lose twice the intended ink-spread compensation and read as too narrow.
Narrow bars disappear after width reduction · case 01
At low resolutions single-module bars vanish, making the symbol unreadable.
Narrow bars disappear after width reduction · case 02
At low resolutions single-module bars vanish, making the symbol unreadable.
Narrow bars disappear after width reduction · case 03
At low resolutions single-module bars vanish, making the symbol unreadable.
Narrow bars disappear after width reduction · case 04
At low resolutions single-module bars vanish, making the symbol unreadable.
Narrow bars disappear after width reduction · case 05
At low resolutions single-module bars vanish, making the symbol unreadable.
Bars and spaces share one width threshold · case 01
Heavily printed labels read every narrow bar as wide because ink spread shifts bars against spaces.
Bars and spaces share one width threshold · case 02
Heavily printed labels read every narrow bar as wide because ink spread shifts bars against spaces.
Bars and spaces share one width threshold · case 03
Heavily printed labels read every narrow bar as wide because ink spread shifts bars against spaces.
Bars and spaces share one width threshold · case 04
Heavily printed labels read every narrow bar as wide because ink spread shifts bars against spaces.
Bars and spaces share one width threshold · case 05
Heavily printed labels read every narrow bar as wide because ink spread shifts bars against spaces.
Uniform element widths are reported as ambiguous · case 01
Symbols whose spaces are all narrow fail to decode with an ambiguity error.
Uniform element widths are reported as ambiguous · case 02
Symbols whose spaces are all narrow fail to decode with an ambiguity error.
Uniform element widths are reported as ambiguous · case 03
Symbols whose spaces are all narrow fail to decode with an ambiguity error.
Uniform element widths are reported as ambiguous · case 04
Symbols whose spaces are all narrow fail to decode with an ambiguity error.
Uniform element widths are reported as ambiguous · case 05
Symbols whose spaces are all narrow fail to decode with an ambiguity error.
Elements on the threshold are silently called wide · case 01
Borderline scans decode to wrong data instead of being retried.
Elements on the threshold are silently called wide · case 02
Borderline scans decode to wrong data instead of being retried.
Elements on the threshold are silently called wide · case 03
Borderline scans decode to wrong data instead of being retried.
Elements on the threshold are silently called wide · case 04
Borderline scans decode to wrong data instead of being retried.
Elements on the threshold are silently called wide · case 05
Borderline scans decode to wrong data instead of being retried.
Width threshold is rounded to an integer · case 01
Elements just above the true midpoint are misread when min + max is odd.
Width threshold is rounded to an integer · case 02
Elements just above the true midpoint are misread when min + max is odd.
Width threshold is rounded to an integer · case 03
Elements just above the true midpoint are misread when min + max is odd.
Width threshold is rounded to an integer · case 04
Elements just above the true midpoint are misread when min + max is odd.
Width threshold is rounded to an integer · case 05
Elements just above the true midpoint are misread when min + max is odd.
Data Matrix digit pairs are offset by 128 · case 01
Numeric pairs 00 and 01 collide with the pad and upper-shift range and serial numbers decode wrongly.
Data Matrix digit pairs are offset by 128 · case 02
Numeric pairs 00 and 01 collide with the pad and upper-shift range and serial numbers decode wrongly.
Data Matrix digit pairs are offset by 128 · case 03
Numeric pairs 00 and 01 collide with the pad and upper-shift range and serial numbers decode wrongly.
Data Matrix digit pairs are offset by 128 · case 04
Numeric pairs 00 and 01 collide with the pad and upper-shift range and serial numbers decode wrongly.
Data Matrix digit pairs are offset by 128 · case 05
Numeric pairs 00 and 01 collide with the pad and upper-shift range and serial numbers decode wrongly.
Data Matrix ASCII values are not offset by one · case 01
Every letter decodes as its predecessor in the alphabet.
Data Matrix ASCII values are not offset by one · case 02
Every letter decodes as its predecessor in the alphabet.
Data Matrix ASCII values are not offset by one · case 03
Every letter decodes as its predecessor in the alphabet.
Data Matrix ASCII values are not offset by one · case 04
Every letter decodes as its predecessor in the alphabet.
Data Matrix ASCII values are not offset by one · case 05
Every letter decodes as its predecessor in the alphabet.
Upper Shift value is one too low · case 01
Accented characters decode as the previous Latin-1 character.
Upper Shift value is one too low · case 02
Accented characters decode as the previous Latin-1 character.
Upper Shift value is one too low · case 03
Accented characters decode as the previous Latin-1 character.
Upper Shift value is one too low · case 04
Accented characters decode as the previous Latin-1 character.
Upper Shift value is one too low · case 05
Accented characters decode as the previous Latin-1 character.
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 ↗