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

HEIF images are rotated by their EXIF copy · case 01

HEIC photos with both EXIF and irot are rotated twice or not at all depending on the camera.

Image orientation metadata● Open access↗
FA-79002

HEIF images are rotated by their EXIF copy · case 02

HEIC photos with both EXIF and irot are rotated twice or not at all depending on the camera.

Image orientation metadata◈ Members↗
FA-79003

HEIF images are rotated by their EXIF copy · case 03

HEIC photos with both EXIF and irot are rotated twice or not at all depending on the camera.

Image orientation metadata◈ Members↗
FA-79004

HEIF images are rotated by their EXIF copy · case 04

HEIC photos with both EXIF and irot are rotated twice or not at all depending on the camera.

Image orientation metadata◈ Members↗
FA-79005

HEIF images are rotated by their EXIF copy · case 05

HEIC photos with both EXIF and irot are rotated twice or not at all depending on the camera.

Image orientation metadata◈ Members↗
FA-79006

HEIF irot is read as clockwise · case 01

HEIC photos stored with a quarter-turn irot display rotated the opposite way from other viewers.

Image orientation metadata● Open access↗
FA-79007

HEIF irot is read as clockwise · case 02

HEIC photos stored with a quarter-turn irot display rotated the opposite way from other viewers.

Image orientation metadata◈ Members↗
FA-79008

HEIF irot is read as clockwise · case 03

HEIC photos stored with a quarter-turn irot display rotated the opposite way from other viewers.

Image orientation metadata◈ Members↗
FA-79009

HEIF irot is read as clockwise · case 04

HEIC photos stored with a quarter-turn irot display rotated the opposite way from other viewers.

Image orientation metadata◈ Members↗
FA-79010

HEIF irot is read as clockwise · case 05

HEIC photos stored with a quarter-turn irot display rotated the opposite way from other viewers.

Image orientation metadata◈ Members↗
FA-79011

HEIF mirror axis is inverted · case 01

Mirrored HEIC selfies are flipped top-bottom instead of left-right.

Image orientation metadata● Open access↗
FA-79012

HEIF mirror axis is inverted · case 02

Mirrored HEIC selfies are flipped top-bottom instead of left-right.

Image orientation metadata◈ Members↗
FA-79013

HEIF mirror axis is inverted · case 03

Mirrored HEIC selfies are flipped top-bottom instead of left-right.

Image orientation metadata◈ Members↗
FA-79014

HEIF mirror axis is inverted · case 04

Mirrored HEIC selfies are flipped top-bottom instead of left-right.

Image orientation metadata◈ Members↗
FA-79015

HEIF mirror axis is inverted · case 05

Mirrored HEIC selfies are flipped top-bottom instead of left-right.

Image orientation metadata◈ Members↗
FA-79016

Out-of-range EXIF orientation overrides XMP · case 01

An EXIF value of 0 or 9 is passed to the renderer even though a valid XMP orientation exists.

Image orientation metadata● Open access↗
FA-79017

Out-of-range EXIF orientation overrides XMP · case 02

An EXIF value of 0 or 9 is passed to the renderer even though a valid XMP orientation exists.

Image orientation metadata◈ Members↗
FA-79018

Out-of-range EXIF orientation overrides XMP · case 03

An EXIF value of 0 or 9 is passed to the renderer even though a valid XMP orientation exists.

Image orientation metadata◈ Members↗
FA-79019

Out-of-range EXIF orientation overrides XMP · case 04

An EXIF value of 0 or 9 is passed to the renderer even though a valid XMP orientation exists.

Image orientation metadata◈ Members↗
FA-79020

Out-of-range EXIF orientation overrides XMP · case 05

An EXIF value of 0 or 9 is passed to the renderer even though a valid XMP orientation exists.

Image orientation metadata◈ Members↗
FA-79021

XMP orientation with surrounding whitespace is ignored · case 01

Sidecar-edited photos whose XMP value is serialised with a newline lose their rotation.

Image orientation metadata● Open access↗
FA-79022

XMP orientation with surrounding whitespace is ignored · case 02

Sidecar-edited photos whose XMP value is serialised with a newline lose their rotation.

Image orientation metadata◈ Members↗
FA-79023

XMP orientation with surrounding whitespace is ignored · case 03

Sidecar-edited photos whose XMP value is serialised with a newline lose their rotation.

Image orientation metadata◈ Members↗
FA-79024

XMP orientation with surrounding whitespace is ignored · case 04

Sidecar-edited photos whose XMP value is serialised with a newline lose their rotation.

Image orientation metadata◈ Members↗
FA-79025

XMP orientation with surrounding whitespace is ignored · case 05

Sidecar-edited photos whose XMP value is serialised with a newline lose their rotation.

Image orientation metadata◈ Members↗
FA-79026

Stale XMP orientation overrides EXIF · case 01

After an in-camera rotation the photo displays with the old XMP orientation.

Image orientation metadata● Open access↗
FA-79027

Stale XMP orientation overrides EXIF · case 02

After an in-camera rotation the photo displays with the old XMP orientation.

Image orientation metadata◈ Members↗
FA-79028

Stale XMP orientation overrides EXIF · case 03

After an in-camera rotation the photo displays with the old XMP orientation.

Image orientation metadata◈ Members↗
FA-79029

Stale XMP orientation overrides EXIF · case 04

After an in-camera rotation the photo displays with the old XMP orientation.

Image orientation metadata◈ Members↗
FA-79030

Stale XMP orientation overrides EXIF · case 05

After an in-camera rotation the photo displays with the old XMP orientation.

Image orientation metadata◈ Members↗
FA-79031

Video rotation matrix is read with math-axis orientation · case 01

Portrait phone videos play upside down: 90 and 270 degree tracks are exchanged.

Image orientation metadata● Open access↗
FA-79032

Video rotation matrix is read with math-axis orientation · case 02

Portrait phone videos play upside down: 90 and 270 degree tracks are exchanged.

Image orientation metadata◈ Members↗
FA-79033

Video rotation matrix is read with math-axis orientation · case 03

Portrait phone videos play upside down: 90 and 270 degree tracks are exchanged.

Image orientation metadata◈ Members↗
FA-79034

Video rotation matrix is read with math-axis orientation · case 04

Portrait phone videos play upside down: 90 and 270 degree tracks are exchanged.

Image orientation metadata◈ Members↗
FA-79035

Video rotation matrix is read with math-axis orientation · case 05

Portrait phone videos play upside down: 90 and 270 degree tracks are exchanged.

Image orientation metadata◈ Members↗
FA-79036

Mirror removal negates the y-axis column · case 01

Mirrored front-camera clips report the wrong rotation.

Image orientation metadata● Open access↗
FA-79037

Mirror removal negates the y-axis column · case 02

Mirrored front-camera clips report the wrong rotation.

Image orientation metadata◈ Members↗
FA-79038

Mirror removal negates the y-axis column · case 03

Mirrored front-camera clips report the wrong rotation.

Image orientation metadata◈ Members↗
FA-79039

Mirror removal negates the y-axis column · case 04

Mirrored front-camera clips report the wrong rotation.

Image orientation metadata◈ Members↗
FA-79040

Mirror removal negates the y-axis column · case 05

Mirrored front-camera clips report the wrong rotation.

Image orientation metadata◈ Members↗
FA-79041

Display matrix words are read as unsigned · case 01

Any rotated or mirrored video is reported as unsupported.

Image orientation metadata● Open access↗
FA-79042

Display matrix words are read as unsigned · case 02

Any rotated or mirrored video is reported as unsupported.

Image orientation metadata◈ Members↗
FA-79043

Display matrix words are read as unsigned · case 03

Any rotated or mirrored video is reported as unsupported.

Image orientation metadata◈ Members↗
FA-79044

Display matrix words are read as unsigned · case 04

Any rotated or mirrored video is reported as unsupported.

Image orientation metadata◈ Members↗
FA-79045

Display matrix words are read as unsigned · case 05

Any rotated or mirrored video is reported as unsupported.

Image orientation metadata◈ Members↗
FA-79046

Mirrored quarter-turn videos are not detected as mirrored · case 01

A mirrored portrait clip shows the right rotation count only by chance and never flips.

Image orientation metadata● Open access↗
FA-79047

Mirrored quarter-turn videos are not detected as mirrored · case 02

A mirrored portrait clip shows the right rotation count only by chance and never flips.

Image orientation metadata◈ Members↗
FA-79048

Mirrored quarter-turn videos are not detected as mirrored · case 03

A mirrored portrait clip shows the right rotation count only by chance and never flips.

Image orientation metadata◈ Members↗
FA-79049

Mirrored quarter-turn videos are not detected as mirrored · case 04

A mirrored portrait clip shows the right rotation count only by chance and never flips.

Image orientation metadata◈ Members↗
FA-79050

Mirrored quarter-turn videos are not detected as mirrored · case 05

A mirrored portrait clip shows the right rotation count only by chance and never flips.

Image orientation metadata◈ Members↗
FA-79051

Displayed video size ignores quarter turns · case 01

Rotated videos are laid out in a landscape box and letterboxed.

Image orientation metadata● Open access↗
FA-79052

Displayed video size ignores quarter turns · case 02

Rotated videos are laid out in a landscape box and letterboxed.

Image orientation metadata◈ Members↗
FA-79053

Displayed video size ignores quarter turns · case 03

Rotated videos are laid out in a landscape box and letterboxed.

Image orientation metadata◈ Members↗
FA-79054

Displayed video size ignores quarter turns · case 04

Rotated videos are laid out in a landscape box and letterboxed.

Image orientation metadata◈ Members↗
FA-79055

Displayed video size ignores quarter turns · case 05

Rotated videos are laid out in a landscape box and letterboxed.

Image orientation metadata◈ Members↗
FA-79056

Lossless rotate trims 4:2:2 images along the wrong MCU axis · case 01

Rotated 4:2:2 JPEGs lose the wrong number of edge pixels or keep a partial block that shifts the image.

Image orientation metadata● Open access↗
FA-79057

Lossless rotate trims 4:2:2 images along the wrong MCU axis · case 02

Rotated 4:2:2 JPEGs lose the wrong number of edge pixels or keep a partial block that shifts the image.

Image orientation metadata◈ Members↗
FA-79058

Lossless rotate trims 4:2:2 images along the wrong MCU axis · case 03

Rotated 4:2:2 JPEGs lose the wrong number of edge pixels or keep a partial block that shifts the image.

Image orientation metadata◈ Members↗
FA-79059

Lossless rotate trims 4:2:2 images along the wrong MCU axis · case 04

Rotated 4:2:2 JPEGs lose the wrong number of edge pixels or keep a partial block that shifts the image.

Image orientation metadata◈ Members↗
FA-79060

Lossless rotate trims 4:2:2 images along the wrong MCU axis · case 05

Rotated 4:2:2 JPEGs lose the wrong number of edge pixels or keep a partial block that shifts the image.

Image orientation metadata◈ Members↗
FA-79061

Lossless mirror pads the width instead of trimming it · case 01

Mirrored JPEGs gain a strip of garbage pixels on the left edge.

Image orientation metadata● Open access↗
FA-79062

Lossless mirror pads the width instead of trimming it · case 02

Mirrored JPEGs gain a strip of garbage pixels on the left edge.

Image orientation metadata◈ Members↗
FA-79063

Lossless mirror pads the width instead of trimming it · case 03

Mirrored JPEGs gain a strip of garbage pixels on the left edge.

Image orientation metadata◈ Members↗
FA-79064

Lossless mirror pads the width instead of trimming it · case 04

Mirrored JPEGs gain a strip of garbage pixels on the left edge.

Image orientation metadata◈ Members↗
FA-79065

Lossless mirror pads the width instead of trimming it · case 05

Mirrored JPEGs gain a strip of garbage pixels on the left edge.

Image orientation metadata◈ Members↗
FA-79066

Height is trimmed for horizontal flips instead of vertical ones · case 01

Clockwise-rotated photos keep a partial bottom MCU row that ends up as a garbage left column.

Image orientation metadata● Open access↗
FA-79067

Height is trimmed for horizontal flips instead of vertical ones · case 02

Clockwise-rotated photos keep a partial bottom MCU row that ends up as a garbage left column.

Image orientation metadata◈ Members↗
FA-79068

Height is trimmed for horizontal flips instead of vertical ones · case 03

Clockwise-rotated photos keep a partial bottom MCU row that ends up as a garbage left column.

Image orientation metadata◈ Members↗
FA-79069

Height is trimmed for horizontal flips instead of vertical ones · case 04

Clockwise-rotated photos keep a partial bottom MCU row that ends up as a garbage left column.

Image orientation metadata◈ Members↗
FA-79070

Height is trimmed for horizontal flips instead of vertical ones · case 05

Clockwise-rotated photos keep a partial bottom MCU row that ends up as a garbage left column.

Image orientation metadata◈ Members↗
FA-79071

Lossless transform emits a zero-width image · case 01

Tiny images narrower than one MCU produce an empty output instead of a refusal.

Image orientation metadata● Open access↗
FA-79072

Lossless transform emits a zero-width image · case 02

Tiny images narrower than one MCU produce an empty output instead of a refusal.

Image orientation metadata◈ Members↗
FA-79073

Lossless transform emits a zero-width image · case 03

Tiny images narrower than one MCU produce an empty output instead of a refusal.

Image orientation metadata◈ Members↗
FA-79074

Lossless transform emits a zero-width image · case 04

Tiny images narrower than one MCU produce an empty output instead of a refusal.

Image orientation metadata◈ Members↗
FA-79075

Lossless transform emits a zero-width image · case 05

Tiny images narrower than one MCU produce an empty output instead of a refusal.

Image orientation metadata◈ Members↗
FA-79076

Lossless transpose keeps stored dimensions · case 01

Tag 5 and 7 JPEGs are reported with stored width and height after a lossless bake.

Image orientation metadata● Open access↗
FA-79077

Lossless transpose keeps stored dimensions · case 02

Tag 5 and 7 JPEGs are reported with stored width and height after a lossless bake.

Image orientation metadata◈ Members↗
FA-79078

Lossless transpose keeps stored dimensions · case 03

Tag 5 and 7 JPEGs are reported with stored width and height after a lossless bake.

Image orientation metadata◈ Members↗
FA-79079

Lossless transpose keeps stored dimensions · case 04

Tag 5 and 7 JPEGs are reported with stored width and height after a lossless bake.

Image orientation metadata◈ Members↗
FA-79080

Lossless transpose keeps stored dimensions · case 05

Tag 5 and 7 JPEGs are reported with stored width and height after a lossless bake.

Image orientation metadata◈ Members↗
FA-79081

Flat-device detection compares squared magnitude to an unsquared threshold · case 01

Photos taken with the phone lying almost flat get a random orientation from sensor noise.

Image orientation metadata● Open access↗
FA-79082

Flat-device detection compares squared magnitude to an unsquared threshold · case 02

Photos taken with the phone lying almost flat get a random orientation from sensor noise.

Image orientation metadata◈ Members↗
FA-79083

Flat-device detection compares squared magnitude to an unsquared threshold · case 03

Photos taken with the phone lying almost flat get a random orientation from sensor noise.

Image orientation metadata◈ Members↗
FA-79084

Flat-device detection compares squared magnitude to an unsquared threshold · case 04

Photos taken with the phone lying almost flat get a random orientation from sensor noise.

Image orientation metadata◈ Members↗
FA-79085

Flat-device detection compares squared magnitude to an unsquared threshold · case 05

Photos taken with the phone lying almost flat get a random orientation from sensor noise.

Image orientation metadata◈ Members↗
FA-79086

Diagonal grip flips the capture orientation to landscape · case 01

Holding the phone at exactly 45 degrees switches the tag on every shot.

Image orientation metadata● Open access↗
FA-79087

Diagonal grip flips the capture orientation to landscape · case 02

Holding the phone at exactly 45 degrees switches the tag on every shot.

Image orientation metadata◈ Members↗
FA-79088

Diagonal grip flips the capture orientation to landscape · case 03

Holding the phone at exactly 45 degrees switches the tag on every shot.

Image orientation metadata◈ Members↗
FA-79089

Diagonal grip flips the capture orientation to landscape · case 04

Holding the phone at exactly 45 degrees switches the tag on every shot.

Image orientation metadata◈ Members↗
FA-79090

Diagonal grip flips the capture orientation to landscape · case 05

Holding the phone at exactly 45 degrees switches the tag on every shot.

Image orientation metadata◈ Members↗
FA-79091

Landscape captures are tagged with the opposite turn · case 01

Landscape photos taken with the phone turned clockwise display upside down.

Image orientation metadata● Open access↗
FA-79092

Landscape captures are tagged with the opposite turn · case 02

Landscape photos taken with the phone turned clockwise display upside down.

Image orientation metadata◈ Members↗
FA-79093

Landscape captures are tagged with the opposite turn · case 03

Landscape photos taken with the phone turned clockwise display upside down.

Image orientation metadata◈ Members↗
FA-79094

Landscape captures are tagged with the opposite turn · case 04

Landscape photos taken with the phone turned clockwise display upside down.

Image orientation metadata◈ Members↗
FA-79095

Landscape captures are tagged with the opposite turn · case 05

Landscape photos taken with the phone turned clockwise display upside down.

Image orientation metadata◈ Members↗
FA-79096

Front camera rotation adds the device turn like the back camera · case 01

Landscape selfies are saved upside down.

Image orientation metadata● Open access↗
FA-79097

Front camera rotation adds the device turn like the back camera · case 02

Landscape selfies are saved upside down.

Image orientation metadata◈ Members↗
FA-79098

Front camera rotation adds the device turn like the back camera · case 03

Landscape selfies are saved upside down.

Image orientation metadata◈ Members↗
FA-79099

Front camera rotation adds the device turn like the back camera · case 04

Landscape selfies are saved upside down.

Image orientation metadata◈ Members↗
FA-79100

Front camera rotation adds the device turn like the back camera · case 05

Landscape selfies are saved upside down.

Image orientation metadata◈ 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 ↗