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
Canonicalisation never considers the transpose · case 01
Transposed copies of a square image are not recognised as duplicates.
Canonicalisation never considers the transpose · case 02
Transposed copies of a square image are not recognised as duplicates.
Canonicalisation never considers the transpose · case 03
Transposed copies of a square image are not recognised as duplicates.
Canonicalisation never considers the transpose · case 04
Transposed copies of a square image are not recognised as duplicates.
Canonicalisation never considers the transpose · case 05
Transposed copies of a square image are not recognised as duplicates.
Canonical key flattens the grid column by column · case 01
Two services computing the canonical form disagree because one flattens column-major.
Canonical key flattens the grid column by column · case 02
Two services computing the canonical form disagree because one flattens column-major.
Canonical key flattens the grid column by column · case 03
Two services computing the canonical form disagree because one flattens column-major.
Canonical key flattens the grid column by column · case 04
Two services computing the canonical form disagree because one flattens column-major.
Canonical key flattens the grid column by column · case 05
Two services computing the canonical form disagree because one flattens column-major.
Canonical restore tag treats quarter turns as self-inverse · case 01
Restoring a deduplicated photo turns it a half turn away from the upload.
Canonical restore tag treats quarter turns as self-inverse · case 02
Restoring a deduplicated photo turns it a half turn away from the upload.
Canonical restore tag treats quarter turns as self-inverse · case 03
Restoring a deduplicated photo turns it a half turn away from the upload.
Canonical restore tag treats quarter turns as self-inverse · case 04
Restoring a deduplicated photo turns it a half turn away from the upload.
Canonical restore tag treats quarter turns as self-inverse · case 05
Restoring a deduplicated photo turns it a half turn away from the upload.
Sidecar loses to the file when both were saved in the same second · case 01
Rotations made in the manager revert after an export that touched both files within one second.
Sidecar loses to the file when both were saved in the same second · case 02
Rotations made in the manager revert after an export that touched both files within one second.
Sidecar loses to the file when both were saved in the same second · case 03
Rotations made in the manager revert after an export that touched both files within one second.
Sidecar loses to the file when both were saved in the same second · case 04
Rotations made in the manager revert after an export that touched both files within one second.
Sidecar loses to the file when both were saved in the same second · case 05
Rotations made in the manager revert after an export that touched both files within one second.
Invalid sidecar orientation blocks the embedded fallback · case 01
A sidecar with orientation 0 or text garbage overrides a valid embedded tag.
Invalid sidecar orientation blocks the embedded fallback · case 02
A sidecar with orientation 0 or text garbage overrides a valid embedded tag.
Invalid sidecar orientation blocks the embedded fallback · case 03
A sidecar with orientation 0 or text garbage overrides a valid embedded tag.
Invalid sidecar orientation blocks the embedded fallback · case 04
A sidecar with orientation 0 or text garbage overrides a valid embedded tag.
Invalid sidecar orientation blocks the embedded fallback · case 05
A sidecar with orientation 0 or text garbage overrides a valid embedded tag.
Unknown reconciliation policy prefers the embedded tag · case 01
Libraries migrated from an older config with policy "latest" ignore newer sidecar edits.
Unknown reconciliation policy prefers the embedded tag · case 02
Libraries migrated from an older config with policy "latest" ignore newer sidecar edits.
Unknown reconciliation policy prefers the embedded tag · case 03
Libraries migrated from an older config with policy "latest" ignore newer sidecar edits.
Unknown reconciliation policy prefers the embedded tag · case 04
Libraries migrated from an older config with policy "latest" ignore newer sidecar edits.
Unknown reconciliation policy prefers the embedded tag · case 05
Libraries migrated from an older config with policy "latest" ignore newer sidecar edits.
Embedded-first policy never falls back to the sidecar · case 01
Files without an embedded tag display unrotated even though the sidecar holds a valid orientation.
Embedded-first policy never falls back to the sidecar · case 02
Files without an embedded tag display unrotated even though the sidecar holds a valid orientation.
Embedded-first policy never falls back to the sidecar · case 03
Files without an embedded tag display unrotated even though the sidecar holds a valid orientation.
Embedded-first policy never falls back to the sidecar · case 04
Files without an embedded tag display unrotated even though the sidecar holds a valid orientation.
Embedded-first policy never falls back to the sidecar · case 05
Files without an embedded tag display unrotated even though the sidecar holds a valid orientation.
Padded sidecar text orientation is rejected · case 01
Sidecars written with a leading space are ignored.
Padded sidecar text orientation is rejected · case 02
Sidecars written with a leading space are ignored.
Padded sidecar text orientation is rejected · case 03
Sidecars written with a leading space are ignored.
Padded sidecar text orientation is rejected · case 04
Sidecars written with a leading space are ignored.
Padded sidecar text orientation is rejected · case 05
Sidecars written with a leading space are ignored.
EAN-13 even-parity set is built by reversing the L codes · case 01
Labels whose leading digit is not 0 scan as invalid because every G-coded digit starts with a bar.
EAN-13 even-parity set is built by reversing the L codes · case 02
Labels whose leading digit is not 0 scan as invalid because every G-coded digit starts with a bar.
EAN-13 even-parity set is built by reversing the L codes · case 03
Labels whose leading digit is not 0 scan as invalid because every G-coded digit starts with a bar.
EAN-13 even-parity set is built by reversing the L codes · case 04
Labels whose leading digit is not 0 scan as invalid because every G-coded digit starts with a bar.
EAN-13 even-parity set is built by reversing the L codes · case 05
Labels whose leading digit is not 0 scan as invalid because every G-coded digit starts with a bar.
EAN-13 parity rows for leading digits 7 and 8 are exchanged · case 01
Codes starting with 7 decode as starting with 8 and vice versa, silently changing the country prefix.
EAN-13 parity rows for leading digits 7 and 8 are exchanged · case 02
Codes starting with 7 decode as starting with 8 and vice versa, silently changing the country prefix.
EAN-13 parity rows for leading digits 7 and 8 are exchanged · case 03
Codes starting with 7 decode as starting with 8 and vice versa, silently changing the country prefix.
EAN-13 parity rows for leading digits 7 and 8 are exchanged · case 04
Codes starting with 7 decode as starting with 8 and vice versa, silently changing the country prefix.
EAN-13 parity rows for leading digits 7 and 8 are exchanged · case 05
Codes starting with 7 decode as starting with 8 and vice versa, silently changing the country prefix.
EAN-13 left half encodes the implied leading digit · case 01
The encoded symbol repeats the first digit and drops the seventh.
EAN-13 left half encodes the implied leading digit · case 02
The encoded symbol repeats the first digit and drops the seventh.
EAN-13 left half encodes the implied leading digit · case 03
The encoded symbol repeats the first digit and drops the seventh.
EAN-13 left half encodes the implied leading digit · case 04
The encoded symbol repeats the first digit and drops the seventh.
EAN-13 left half encodes the implied leading digit · case 05
The encoded symbol repeats the first digit and drops the seventh.
EAN-13 centre guard starts with a bar · case 01
Scanners reject every symbol because the centre guard pattern is inverted.
EAN-13 centre guard starts with a bar · case 02
Scanners reject every symbol because the centre guard pattern is inverted.
EAN-13 centre guard starts with a bar · case 03
Scanners reject every symbol because the centre guard pattern is inverted.
EAN-13 centre guard starts with a bar · case 04
Scanners reject every symbol because the centre guard pattern is inverted.
EAN-13 centre guard starts with a bar · case 05
Scanners reject every symbol because the centre guard pattern is inverted.
EAN-13 right half is shifted by one digit · case 01
The seventh digit is encoded twice and the check digit is missing.
EAN-13 right half is shifted by one digit · case 02
The seventh digit is encoded twice and the check digit is missing.
EAN-13 right half is shifted by one digit · case 03
The seventh digit is encoded twice and the check digit is missing.
EAN-13 right half is shifted by one digit · case 04
The seventh digit is encoded twice and the check digit is missing.
EAN-13 right half is shifted by one digit · case 05
The seventh digit is encoded twice and the check digit is missing.
EAN-13 encoder accepts non-ASCII digits · case 01
Full-width or Arabic-Indic digits pasted from documents are encoded as if they were ASCII.
EAN-13 encoder accepts non-ASCII digits · case 02
Full-width or Arabic-Indic digits pasted from documents are encoded as if they were ASCII.
EAN-13 encoder accepts non-ASCII digits · case 03
Full-width or Arabic-Indic digits pasted from documents are encoded as if they were ASCII.
EAN-13 encoder accepts non-ASCII digits · case 04
Full-width or Arabic-Indic digits pasted from documents are encoded as if they were ASCII.
EAN-13 encoder accepts non-ASCII digits · case 05
Full-width or Arabic-Indic digits pasted from documents are encoded as if they were ASCII.
UPC-E expansion applies the 0-2 rule to a final 3 · case 01
Compressed codes ending in 3 expand to a different manufacturer number.
UPC-E expansion applies the 0-2 rule to a final 3 · case 02
Compressed codes ending in 3 expand to a different manufacturer number.
UPC-E expansion applies the 0-2 rule to a final 3 · case 03
Compressed codes ending in 3 expand to a different manufacturer number.
UPC-E expansion applies the 0-2 rule to a final 3 · case 04
Compressed codes ending in 3 expand to a different manufacturer number.
UPC-E expansion applies the 0-2 rule to a final 3 · case 05
Compressed codes ending in 3 expand to a different manufacturer number.
UPC-E rule 3 keeps four manufacturer digits · case 01
Items whose code ends in 3 are looked up under the wrong product.
UPC-E rule 3 keeps four manufacturer digits · case 02
Items whose code ends in 3 are looked up under the wrong product.
UPC-E rule 3 keeps four manufacturer digits · case 03
Items whose code ends in 3 are looked up under the wrong product.
UPC-E rule 3 keeps four manufacturer digits · case 04
Items whose code ends in 3 are looked up under the wrong product.
UPC-E rule 3 keeps four manufacturer digits · case 05
Items whose code ends in 3 are looked up under the wrong product.
UPC-E rule 4 uses the three-digit manufacturer layout · case 01
Codes ending in 4 collide with codes ending in 3.
UPC-E rule 4 uses the three-digit manufacturer layout · case 02
Codes ending in 4 collide with codes ending in 3.
UPC-E rule 4 uses the three-digit manufacturer layout · case 03
Codes ending in 4 collide with codes ending in 3.
UPC-E rule 4 uses the three-digit manufacturer layout · case 04
Codes ending in 4 collide with codes ending in 3.
UPC-E rule 4 uses the three-digit manufacturer layout · case 05
Codes ending in 4 collide with codes ending in 3.
UPC-E rule 5-9 places the final digit in the manufacturer number · case 01
Codes ending in 5 through 9 expand to six-digit manufacturer prefixes.
UPC-E rule 5-9 places the final digit in the manufacturer number · case 02
Codes ending in 5 through 9 expand to six-digit manufacturer prefixes.
UPC-E rule 5-9 places the final digit in the manufacturer number · case 03
Codes ending in 5 through 9 expand to six-digit manufacturer prefixes.
UPC-E rule 5-9 places the final digit in the manufacturer number · case 04
Codes ending in 5 through 9 expand to six-digit manufacturer prefixes.
UPC-E rule 5-9 places the final digit in the manufacturer number · case 05
Codes ending in 5 through 9 expand to six-digit manufacturer prefixes.
UPC-E expansion accepts number systems other than 0 and 1 · case 01
Mistyped codes with a leading 2 are expanded to UPC-A instead of being rejected.
UPC-E expansion accepts number systems other than 0 and 1 · case 02
Mistyped codes with a leading 2 are expanded to UPC-A instead of being rejected.
UPC-E expansion accepts number systems other than 0 and 1 · case 03
Mistyped codes with a leading 2 are expanded to UPC-A instead of being rejected.
UPC-E expansion accepts number systems other than 0 and 1 · case 04
Mistyped codes with a leading 2 are expanded to UPC-A instead of being rejected.
UPC-E expansion accepts number systems other than 0 and 1 · case 05
Mistyped codes with a leading 2 are expanded to UPC-A instead of being rejected.
Code 128 start set is chosen from the total digit count · case 01
Data such as "A1B2C3D4" starts in set C and immediately needs a switch, producing a longer symbol.
Code 128 start set is chosen from the total digit count · case 02
Data such as "A1B2C3D4" starts in set C and immediately needs a switch, producing a longer symbol.
Code 128 start set is chosen from the total digit count · case 03
Data such as "A1B2C3D4" starts in set C and immediately needs a switch, producing a longer symbol.
Code 128 start set is chosen from the total digit count · case 04
Data such as "A1B2C3D4" starts in set C and immediately needs a switch, producing a longer symbol.
Code 128 start set is chosen from the total digit count · case 05
Data such as "A1B2C3D4" starts in set C and immediately needs a switch, producing a longer symbol.
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 ↗