FAILURE MAP
← Case archive

FA-76771 / Email MIME structure / Open access

Choose non-colliding boundaries for nested multiparts: ancestor prefix · case 01

A nested boundary such as b_10 extends the outer boundary b_1, so the outer delimiter matches inside the inner one.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The ancestor prefix decision evaluates `a == cand` where the contract requires `a.startswith(cand) or cand.startswith(a)`.

THE FAILURE

The ancestor prefix decision evaluates `a == cand` where the contract requires `a.startswith(cand) or cand.startswith(a)`.

Unsuccessful approach: Checking only one direction misses the inner boundary that extends the outer one. The attempted `a.startswith(cand)` still disagrees with a fixture.

Case contract

Multipart nodes have "parts", leaves have "text". Nodes are visited depth-first (pre-order) and a single counter produces candidates base_1, base_2, ... A candidate is rejected when it occurs in any text anywhere below the node, when it is a prefix of an ancestor boundary or an ancestor boundary is a prefix of it, and a candidate longer than 70 characters makes that node's boundary None (its subtree gets none). Result: boundaries in visiting order.

Why this case matters

A boundary that appears inside a part, or that extends an outer boundary, splits the message at the wrong place.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(tree, base):
    out = []
    counter = [0]
    def contents(n):
        if 'parts' in n:
            return [x for c in n['parts'] for x in contents(c)]
        return [n.get('text', '')]
    def assign(n, ancestors):
        if 'parts' not in n:
            return
        texts = contents(n)
        while True:
            counter[0] += 1
            cand = base + '_' + str(counter[0])
            if len(cand) > 70:
                out.append(None)
                return
            if any(cand in t for t in texts):
                continue
            if any(a == cand for a in ancestors):
                continue
            break
        out.append(cand)
        for c in n['parts']:
            assign(c, ancestors + [cand])
    assign(tree, [])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b1_1 and b1_2'}]}]}, 'b1'), ['b1_3', 'b1_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q1_2 q1_3 q1_4 q1_5 q1_6 q1_7 q1_8 q1_9'}]}]}, 'q1'), ['q1_1', 'q1_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm1'), ['m1_1', 'm1_2', 'm1_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 2: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b2_1 and b2_2'}]}]}, 'b2'), ['b2_3', 'b2_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q2_2 q2_3 q2_4 q2_5 q2_6 q2_7 q2_8 q2_9'}]}]}, 'q2'), ['q2_1', 'q2_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm2'), ['m2_1', 'm2_2', 'm2_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 3: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b3_1 and b3_2'}]}]}, 'b3'), ['b3_3', 'b3_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q3_2 q3_3 q3_4 q3_5 q3_6 q3_7 q3_8 q3_9'}]}]}, 'q3'), ['q3_1', 'q3_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz3'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz3_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm3'), ['m3_1', 'm3_2', 'm3_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 4: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b4_1 and b4_2'}]}]}, 'b4'), ['b4_3', 'b4_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q4_2 q4_3 q4_4 q4_5 q4_6 q4_7 q4_8 q4_9'}]}]}, 'q4'), ['q4_1', 'q4_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm4'), ['m4_1', 'm4_2', 'm4_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 5: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b5_1 and b5_2'}]}]}, 'b5'), ['b5_3', 'b5_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q5_2 q5_3 q5_4 q5_5 q5_6 q5_7 q5_8 q5_9'}]}]}, 'q5'), ['q5_1', 'q5_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz5'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz5_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm5'), ['m5_1', 'm5_2', 'm5_3']), ('single leaf', ({'text': 'only'}, 'n'), [])]}
for _label, _args, _expected in _CASES[N]:
    check(_label, solve(*_args), _expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
collision deep in a later child['b1_3', 'b1_4']['b1_3', 'b1_4']Passed
counter passes ten['q1_1', 'q1_10']['q1_1', 'q1_20']Failed
exactly seventy characters['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1_1']['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1_1']Passed
seventy-one characters[None][None]Passed
plain nesting['m1_1', 'm1_2', 'm1_3']['m1_1', 'm1_2', 'm1_3']Passed
single leaf[][]Passed

SHA-256 / eccf74e91a27454f3c29f0b02109b799e07f3d94bc66625e5ea8e8b14a88aa83

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(tree, base):
    out = []
    counter = [0]
    def contents(n):
        if 'parts' in n:
            return [x for c in n['parts'] for x in contents(c)]
        return [n.get('text', '')]
    def assign(n, ancestors):
        if 'parts' not in n:
            return
        texts = contents(n)
        while True:
            counter[0] += 1
            cand = base + '_' + str(counter[0])
            if len(cand) > 70:
                out.append(None)
                return
            if any(cand in t for t in texts):
                continue
            if any(a.startswith(cand) for a in ancestors):
                continue
            break
        out.append(cand)
        for c in n['parts']:
            assign(c, ancestors + [cand])
    assign(tree, [])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
_CASES = {1: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b1_1 and b1_2'}]}]}, 'b1'), ['b1_3', 'b1_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q1_2 q1_3 q1_4 q1_5 q1_6 q1_7 q1_8 q1_9'}]}]}, 'q1'), ['q1_1', 'q1_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm1'), ['m1_1', 'm1_2', 'm1_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 2: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b2_1 and b2_2'}]}]}, 'b2'), ['b2_3', 'b2_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q2_2 q2_3 q2_4 q2_5 q2_6 q2_7 q2_8 q2_9'}]}]}, 'q2'), ['q2_1', 'q2_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz2_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm2'), ['m2_1', 'm2_2', 'm2_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 3: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b3_1 and b3_2'}]}]}, 'b3'), ['b3_3', 'b3_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q3_2 q3_3 q3_4 q3_5 q3_6 q3_7 q3_8 q3_9'}]}]}, 'q3'), ['q3_1', 'q3_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz3'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz3_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm3'), ['m3_1', 'm3_2', 'm3_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 4: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b4_1 and b4_2'}]}]}, 'b4'), ['b4_3', 'b4_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q4_2 q4_3 q4_4 q4_5 q4_6 q4_7 q4_8 q4_9'}]}]}, 'q4'), ['q4_1', 'q4_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz4_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm4'), ['m4_1', 'm4_2', 'm4_3']), ('single leaf', ({'text': 'only'}, 'n'), [])], 5: [('collision deep in a later child', ({'parts': [{'text': 'x'}, {'parts': [{'text': 'has b5_1 and b5_2'}]}]}, 'b5'), ['b5_3', 'b5_4']), ('counter passes ten', ({'parts': [{'parts': [{'text': 'q5_2 q5_3 q5_4 q5_5 q5_6 q5_7 q5_8 q5_9'}]}]}, 'q5'), ['q5_1', 'q5_20']), ('exactly seventy characters', ({'parts': [{'text': 'x'}]}, 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz5'), ['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz5_1']), ('seventy-one characters', ({'parts': [{'text': 'x'}]}, 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy'), [None]), ('plain nesting', ({'parts': [{'parts': [{'text': 'a'}]}, {'parts': [{'text': 'b'}]}]}, 'm5'), ['m5_1', 'm5_2', 'm5_3']), ('single leaf', ({'text': 'only'}, 'n'), [])]}
for _label, _args, _expected in _CASES[N]:
    check(_label, solve(*_args), _expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
collision deep in a later child['b1_3', 'b1_4']['b1_3', 'b1_4']Passed
counter passes ten['q1_1', 'q1_10']['q1_1', 'q1_20']Failed
exactly seventy characters['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1_1']['zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz1_1']Passed
seventy-one characters[None][None]Passed
plain nesting['m1_1', 'm1_2', 'm1_3']['m1_1', 'm1_2', 'm1_3']Passed
single leaf[][]Passed

SHA-256 / 3ace6fdbebcd71b9dd0ce63b750642a0c8ed2dd96760d7743138ea0bd564b3e2

HELD IN THE MEMBER ARCHIVE

The verified repair and its recorded checks are member-only.

This mechanism has 6 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.

Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.

Member access is invitation-based. Sign in with your invited account to inspect the repair.

Sign in to the archive ↗

Verification & scope

Stipulated offline model over pre-parsed MIME dictionaries; not a conforming MIME parser, generator or mail client. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:49:19.350593+00:00.

Case digest / a5acf4384e31fe82649d652de21cd247ce75cc969e58537018079242f2172354