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

Nondata descriptor shadow: Treats false instance shadows as absent · case 01

Treats false instance shadows as absent and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5002

Nondata descriptor shadow: Treats false instance shadows as absent · case 02

Treats false instance shadows as absent and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5003

Nondata descriptor shadow: Treats false instance shadows as absent · case 03

Treats false instance shadows as absent and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5004

Nondata descriptor shadow: Treats false instance shadows as absent · case 04

Treats false instance shadows as absent and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5005

Nondata descriptor shadow: Treats false instance shadows as absent · case 05

Treats false instance shadows as absent and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5006

Getattr fallback: Invokes __getattr__ before trying actual attribute lookup · case 01

Invokes __getattr__ before trying actual attribute lookup and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5007

Getattr fallback: Invokes __getattr__ before trying actual attribute lookup · case 02

Invokes __getattr__ before trying actual attribute lookup and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5008

Getattr fallback: Invokes __getattr__ before trying actual attribute lookup · case 03

Invokes __getattr__ before trying actual attribute lookup and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5009

Getattr fallback: Invokes __getattr__ before trying actual attribute lookup · case 04

Invokes __getattr__ before trying actual attribute lookup and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5010

Getattr fallback: Invokes __getattr__ before trying actual attribute lookup · case 05

Invokes __getattr__ before trying actual attribute lookup and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5011

Getattr fallback: Calls object.__getattribute__ directly and bypasses __getattr__ fallback · case 01

Calls object.__getattribute__ directly and bypasses __getattr__ fallback and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5012

Getattr fallback: Calls object.__getattribute__ directly and bypasses __getattr__ fallback · case 02

Calls object.__getattribute__ directly and bypasses __getattr__ fallback and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5013

Getattr fallback: Calls object.__getattribute__ directly and bypasses __getattr__ fallback · case 03

Calls object.__getattribute__ directly and bypasses __getattr__ fallback and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5014

Getattr fallback: Calls object.__getattribute__ directly and bypasses __getattr__ fallback · case 04

Calls object.__getattribute__ directly and bypasses __getattr__ fallback and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5015

Getattr fallback: Calls object.__getattribute__ directly and bypasses __getattr__ fallback · case 05

Calls object.__getattribute__ directly and bypasses __getattr__ fallback and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5016

Getattr fallback: Looks only in the instance dictionary and skips class descriptors · case 01

Looks only in the instance dictionary and skips class descriptors and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5017

Getattr fallback: Looks only in the instance dictionary and skips class descriptors · case 02

Looks only in the instance dictionary and skips class descriptors and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5018

Getattr fallback: Looks only in the instance dictionary and skips class descriptors · case 03

Looks only in the instance dictionary and skips class descriptors and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5019

Getattr fallback: Looks only in the instance dictionary and skips class descriptors · case 04

Looks only in the instance dictionary and skips class descriptors and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5020

Getattr fallback: Looks only in the instance dictionary and skips class descriptors · case 05

Looks only in the instance dictionary and skips class descriptors and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5021

Getattr fallback: Changes an AttributeError getter into ValueError so fallback no longer runs · case 01

Changes an AttributeError getter into ValueError so fallback no longer runs and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5022

Getattr fallback: Changes an AttributeError getter into ValueError so fallback no longer runs · case 02

Changes an AttributeError getter into ValueError so fallback no longer runs and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5023

Getattr fallback: Changes an AttributeError getter into ValueError so fallback no longer runs · case 03

Changes an AttributeError getter into ValueError so fallback no longer runs and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5024

Getattr fallback: Changes an AttributeError getter into ValueError so fallback no longer runs · case 04

Changes an AttributeError getter into ValueError so fallback no longer runs and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5025

Getattr fallback: Changes an AttributeError getter into ValueError so fallback no longer runs · case 05

Changes an AttributeError getter into ValueError so fallback no longer runs and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5026

Getattr fallback: Returns a constant fallback instead of the requested missing attribute name · case 01

Returns a constant fallback instead of the requested missing attribute name and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5027

Getattr fallback: Returns a constant fallback instead of the requested missing attribute name · case 02

Returns a constant fallback instead of the requested missing attribute name and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5028

Getattr fallback: Returns a constant fallback instead of the requested missing attribute name · case 03

Returns a constant fallback instead of the requested missing attribute name and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5029

Getattr fallback: Returns a constant fallback instead of the requested missing attribute name · case 04

Returns a constant fallback instead of the requested missing attribute name and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5030

Getattr fallback: Returns a constant fallback instead of the requested missing attribute name · case 05

Returns a constant fallback instead of the requested missing attribute name and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5031

Descriptor owner argument: Hardcodes the descriptor-defining class as owner · case 01

Hardcodes the descriptor-defining class as owner and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5032

Descriptor owner argument: Hardcodes the descriptor-defining class as owner · case 02

Hardcodes the descriptor-defining class as owner and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5033

Descriptor owner argument: Hardcodes the descriptor-defining class as owner · case 03

Hardcodes the descriptor-defining class as owner and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5034

Descriptor owner argument: Hardcodes the descriptor-defining class as owner · case 04

Hardcodes the descriptor-defining class as owner and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5035

Descriptor owner argument: Hardcodes the descriptor-defining class as owner · case 05

Hardcodes the descriptor-defining class as owner and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5036

Descriptor owner argument: Uses type(None) as owner for class-level access · case 01

Uses type(None) as owner for class-level access and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5037

Descriptor owner argument: Uses type(None) as owner for class-level access · case 02

Uses type(None) as owner for class-level access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5038

Descriptor owner argument: Uses type(None) as owner for class-level access · case 03

Uses type(None) as owner for class-level access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5039

Descriptor owner argument: Uses type(None) as owner for class-level access · case 04

Uses type(None) as owner for class-level access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5040

Descriptor owner argument: Uses type(None) as owner for class-level access · case 05

Uses type(None) as owner for class-level access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5041

Descriptor owner argument: Reports a non-None instance during class descriptor access · case 01

Reports a non-None instance during class descriptor access and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5042

Descriptor owner argument: Reports a non-None instance during class descriptor access · case 02

Reports a non-None instance during class descriptor access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5043

Descriptor owner argument: Reports a non-None instance during class descriptor access · case 03

Reports a non-None instance during class descriptor access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5044

Descriptor owner argument: Reports a non-None instance during class descriptor access · case 04

Reports a non-None instance during class descriptor access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5045

Descriptor owner argument: Reports a non-None instance during class descriptor access · case 05

Reports a non-None instance during class descriptor access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5046

Descriptor owner argument: Drops instance binding for ordinary instance access · case 01

Drops instance binding for ordinary instance access and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5047

Descriptor owner argument: Drops instance binding for ordinary instance access · case 02

Drops instance binding for ordinary instance access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5048

Descriptor owner argument: Drops instance binding for ordinary instance access · case 03

Drops instance binding for ordinary instance access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5049

Descriptor owner argument: Drops instance binding for ordinary instance access · case 04

Drops instance binding for ordinary instance access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5050

Descriptor owner argument: Drops instance binding for ordinary instance access · case 05

Drops instance binding for ordinary instance access and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5051

Descriptor owner argument: Passes the metaclass rather than the owner class identity · case 01

Passes the metaclass rather than the owner class identity and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5052

Descriptor owner argument: Passes the metaclass rather than the owner class identity · case 02

Passes the metaclass rather than the owner class identity and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5053

Descriptor owner argument: Passes the metaclass rather than the owner class identity · case 03

Passes the metaclass rather than the owner class identity and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5054

Descriptor owner argument: Passes the metaclass rather than the owner class identity · case 04

Passes the metaclass rather than the owner class identity and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5055

Descriptor owner argument: Passes the metaclass rather than the owner class identity · case 05

Passes the metaclass rather than the owner class identity and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5056

Special method type lookup: Uses direct instance lookup for the implicit len protocol · case 01

Uses direct instance lookup for the implicit len protocol and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5057

Special method type lookup: Uses direct instance lookup for the implicit len protocol · case 02

Uses direct instance lookup for the implicit len protocol and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5058

Special method type lookup: Uses direct instance lookup for the implicit len protocol · case 03

Uses direct instance lookup for the implicit len protocol and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5059

Special method type lookup: Uses direct instance lookup for the implicit len protocol · case 04

Uses direct instance lookup for the implicit len protocol and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5060

Special method type lookup: Uses direct instance lookup for the implicit len protocol · case 05

Uses direct instance lookup for the implicit len protocol and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5061

Special method type lookup: Bypasses the instance shadow for an explicit __len__ call · case 01

Bypasses the instance shadow for an explicit __len__ call and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5062

Special method type lookup: Bypasses the instance shadow for an explicit __len__ call · case 02

Bypasses the instance shadow for an explicit __len__ call and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5063

Special method type lookup: Bypasses the instance shadow for an explicit __len__ call · case 03

Bypasses the instance shadow for an explicit __len__ call and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5064

Special method type lookup: Bypasses the instance shadow for an explicit __len__ call · case 04

Bypasses the instance shadow for an explicit __len__ call and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5065

Special method type lookup: Bypasses the instance shadow for an explicit __len__ call · case 05

Bypasses the instance shadow for an explicit __len__ call and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5066

Special method type lookup: Uses the instance override for an explicit class method invocation · case 01

Uses the instance override for an explicit class method invocation and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5067

Special method type lookup: Uses the instance override for an explicit class method invocation · case 02

Uses the instance override for an explicit class method invocation and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5068

Special method type lookup: Uses the instance override for an explicit class method invocation · case 03

Uses the instance override for an explicit class method invocation and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5069

Special method type lookup: Uses the instance override for an explicit class method invocation · case 04

Uses the instance override for an explicit class method invocation and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5070

Special method type lookup: Uses the instance override for an explicit class method invocation · case 05

Uses the instance override for an explicit class method invocation and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5071

Special method type lookup: Bases truth on a shadowed instance __len__ · case 01

Bases truth on a shadowed instance __len__ and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5072

Special method type lookup: Bases truth on a shadowed instance __len__ · case 02

Bases truth on a shadowed instance __len__ and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5073

Special method type lookup: Bases truth on a shadowed instance __len__ · case 03

Bases truth on a shadowed instance __len__ and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5074

Special method type lookup: Bases truth on a shadowed instance __len__ · case 04

Bases truth on a shadowed instance __len__ and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5075

Special method type lookup: Bases truth on a shadowed instance __len__ · case 05

Bases truth on a shadowed instance __len__ and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5076

Special method type lookup: Treats every allocated object as true regardless of its zero native length · case 01

Treats every allocated object as true regardless of its zero native length and changes the required Python-language result.

Descriptor lookup● Open access↗
FA-5077

Special method type lookup: Treats every allocated object as true regardless of its zero native length · case 02

Treats every allocated object as true regardless of its zero native length and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5078

Special method type lookup: Treats every allocated object as true regardless of its zero native length · case 03

Treats every allocated object as true regardless of its zero native length and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5079

Special method type lookup: Treats every allocated object as true regardless of its zero native length · case 04

Treats every allocated object as true regardless of its zero native length and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5080

Special method type lookup: Treats every allocated object as true regardless of its zero native length · case 05

Treats every allocated object as true regardless of its zero native length and changes the required Python-language result.

Descriptor lookup◈ Members↗
FA-5081

Cooperative diamond mro: Hardcodes A delegation to Root and skips a sibling in the MRO · case 01

Hardcodes A delegation to Root and skips a sibling in the MRO and changes the required Python-language result.

Method resolution● Open access↗
FA-5082

Cooperative diamond mro: Hardcodes A delegation to Root and skips a sibling in the MRO · case 02

Hardcodes A delegation to Root and skips a sibling in the MRO and changes the required Python-language result.

Method resolution◈ Members↗
FA-5083

Cooperative diamond mro: Hardcodes A delegation to Root and skips a sibling in the MRO · case 03

Hardcodes A delegation to Root and skips a sibling in the MRO and changes the required Python-language result.

Method resolution◈ Members↗
FA-5084

Cooperative diamond mro: Hardcodes A delegation to Root and skips a sibling in the MRO · case 04

Hardcodes A delegation to Root and skips a sibling in the MRO and changes the required Python-language result.

Method resolution◈ Members↗
FA-5085

Cooperative diamond mro: Hardcodes A delegation to Root and skips a sibling in the MRO · case 05

Hardcodes A delegation to Root and skips a sibling in the MRO and changes the required Python-language result.

Method resolution◈ Members↗
FA-5086

Cooperative diamond mro: Hardcodes B delegation to Root and skips A in reversed base order · case 01

Hardcodes B delegation to Root and skips A in reversed base order and changes the required Python-language result.

Method resolution● Open access↗
FA-5087

Cooperative diamond mro: Hardcodes B delegation to Root and skips A in reversed base order · case 02

Hardcodes B delegation to Root and skips A in reversed base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5088

Cooperative diamond mro: Hardcodes B delegation to Root and skips A in reversed base order · case 03

Hardcodes B delegation to Root and skips A in reversed base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5089

Cooperative diamond mro: Hardcodes B delegation to Root and skips A in reversed base order · case 04

Hardcodes B delegation to Root and skips A in reversed base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5090

Cooperative diamond mro: Hardcodes B delegation to Root and skips A in reversed base order · case 05

Hardcodes B delegation to Root and skips A in reversed base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5091

Cooperative diamond mro: Starts at A regardless of the declared base order · case 01

Starts at A regardless of the declared base order and changes the required Python-language result.

Method resolution● Open access↗
FA-5092

Cooperative diamond mro: Starts at A regardless of the declared base order · case 02

Starts at A regardless of the declared base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5093

Cooperative diamond mro: Starts at A regardless of the declared base order · case 03

Starts at A regardless of the declared base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5094

Cooperative diamond mro: Starts at A regardless of the declared base order · case 04

Starts at A regardless of the declared base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5095

Cooperative diamond mro: Starts at A regardless of the declared base order · case 05

Starts at A regardless of the declared base order and changes the required Python-language result.

Method resolution◈ Members↗
FA-5096

Cooperative diamond mro: Omits the terminal Root contribution from the cooperative chain · case 01

Omits the terminal Root contribution from the cooperative chain and changes the required Python-language result.

Method resolution● Open access↗
FA-5097

Cooperative diamond mro: Omits the terminal Root contribution from the cooperative chain · case 02

Omits the terminal Root contribution from the cooperative chain and changes the required Python-language result.

Method resolution◈ Members↗
FA-5098

Cooperative diamond mro: Omits the terminal Root contribution from the cooperative chain · case 03

Omits the terminal Root contribution from the cooperative chain and changes the required Python-language result.

Method resolution◈ Members↗
FA-5099

Cooperative diamond mro: Omits the terminal Root contribution from the cooperative chain · case 04

Omits the terminal Root contribution from the cooperative chain and changes the required Python-language result.

Method resolution◈ Members↗
FA-5100

Cooperative diamond mro: Omits the terminal Root contribution from the cooperative chain · case 05

Omits the terminal Root contribution from the cooperative chain and changes the required Python-language result.

Method resolution◈ 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 ↗