{"abstract":"A valid character split across chunks becomes replacement characters or vanishes.","category":"Encodings","checks":7,"contract":"Decode a list of byte chunks as one strict UTF-8 stream. Return the decoded string, or None for malformed or incomplete input. Empty chunks have no semantic effect.","evaluation_group":"model-1b6ebc1e53826667","failed_approach":"Ignoring decode errors hides corrupt data and drops fragments of valid split characters.","family":"parse-incremental-utf8","id":"FA-186","implementations":{"attempt":{"sha256":"497f09ffc5ff84fb9f457c6d95b7e2af543fa132cd26981df54212d12e2a3b3b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport codecs\nN = 1\nobservations = []\ndef solve(chunks):\n    return ''.join(chunk.decode('utf-8', errors='ignore') for chunk in chunks)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nprefix = 'x' * N\ncheck('two-byte sequence split', solve([prefix.encode() + b'\\xc3', b'\\xa9']), prefix + 'é')\ncheck('four-byte sequence split into single bytes', solve([b'\\xf0', b'\\x9f', b'\\x99', b'\\x82'] * N), '🙂' * N)\ncheck('ASCII stream', solve([b'a' * N, b'b']), 'a' * N + 'b')\ncheck('empty chunks within a sequence', solve([b'\\xc3', b'', b'\\xa9', b'']), 'é')\ncheck('incomplete final sequence rejected', solve([prefix.encode(), b'\\xe7\\x95']), None)\ncheck('invalid continuation rejected', solve([b'\\xc3', b'x']), None)\ncheck('no chunks', solve([]), '')\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"cf57df10c71594ac78d8b49f9767aaa3f7e672bb42ed269d5a9af908676efad3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport codecs\nN = 1\nobservations = []\ndef solve(chunks):\n    return ''.join(chunk.decode('utf-8', errors='replace') for chunk in chunks)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nprefix = 'x' * N\ncheck('two-byte sequence split', solve([prefix.encode() + b'\\xc3', b'\\xa9']), prefix + 'é')\ncheck('four-byte sequence split into single bytes', solve([b'\\xf0', b'\\x9f', b'\\x99', b'\\x82'] * N), '🙂' * N)\ncheck('ASCII stream', solve([b'a' * N, b'b']), 'a' * N + 'b')\ncheck('empty chunks within a sequence', solve([b'\\xc3', b'', b'\\xa9', b'']), 'é')\ncheck('incomplete final sequence rejected', solve([prefix.encode(), b'\\xe7\\x95']), None)\ncheck('invalid continuation rejected', solve([b'\\xc3', b'x']), None)\ncheck('no chunks', solve([]), '')\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"8648940600cd62dc7d0251b9f70da7dac83989107b1605c1c4b602a793a591a7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport codecs\nN = 1\nobservations = []\ndef solve(chunks):\n    decoder = codecs.getincrementaldecoder('utf-8')(errors='strict')\n    try:\n        parts = [decoder.decode(chunk, final=False) for chunk in chunks]\n        parts.append(decoder.decode(b'', final=True))\n        return ''.join(parts)\n    except UnicodeDecodeError:\n        return None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nprefix = 'x' * N\ncheck('two-byte sequence split', solve([prefix.encode() + b'\\xc3', b'\\xa9']), prefix + 'é')\ncheck('four-byte sequence split into single bytes', solve([b'\\xf0', b'\\x9f', b'\\x99', b'\\x82'] * N), '🙂' * N)\ncheck('ASCII stream', solve([b'a' * N, b'b']), 'a' * N + 'b')\ncheck('empty chunks within a sequence', solve([b'\\xc3', b'', b'\\xa9', b'']), 'é')\ncheck('incomplete final sequence rejected', solve([prefix.encode(), b'\\xe7\\x95']), None)\ncheck('invalid continuation rejected', solve([b'\\xc3', b'x']), None)\ncheck('no chunks', solve([]), '')\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":" 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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"parse-incremental-utf8","generated_at":"2026-09-29T14:36:51.019074+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"HTTP, socket and stream-reader chunk boundaries are independent of character boundaries. Finalization matters even when every earlier chunk was accepted.","repair":"Carry decoder state across chunks and finalize it to detect incomplete trailing sequences.","root_cause":"Each transport chunk is decoded as if it were an independently complete UTF-8 string.","sha256":"2a5f19a21ffc5a25574b1f469e8267fc5cf13a5b21ff00478ab94537fb4c173e","title":"A network chunk boundary corrupts a Unicode character · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":29.46,"exit_code":1,"observations":[{"actual":"x","check":"two-byte sequence split","expected":"xé","passed":false},{"actual":"","check":"four-byte sequence split into single bytes","expected":"🙂","passed":false},{"actual":"ab","check":"ASCII stream","expected":"ab","passed":true},{"actual":"","check":"empty chunks within a sequence","expected":"é","passed":false},{"actual":"x","check":"incomplete final sequence rejected","expected":null,"passed":false},{"actual":"x","check":"invalid continuation rejected","expected":null,"passed":false},{"actual":"","check":"no chunks","expected":"","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two-byte sequence split\", \"actual\": \"x\", \"expected\": \"xé\", \"passed\": false}, {\"check\": \"four-byte sequence split into single bytes\", \"actual\": \"\", \"expected\": \"🙂\", \"passed\": false}, {\"check\": \"ASCII stream\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"empty chunks within a sequence\", \"actual\": \"\", \"expected\": \"é\", \"passed\": false}, {\"check\": \"incomplete final sequence rejected\", \"actual\": \"x\", \"expected\": null, \"passed\": false}, {\"check\": \"invalid continuation rejected\", \"actual\": \"x\", \"expected\": null, \"passed\": false}, {\"check\": \"no chunks\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":32.238,"exit_code":1,"observations":[{"actual":"x��","check":"two-byte sequence split","expected":"xé","passed":false},{"actual":"����","check":"four-byte sequence split into single bytes","expected":"🙂","passed":false},{"actual":"ab","check":"ASCII stream","expected":"ab","passed":true},{"actual":"��","check":"empty chunks within a sequence","expected":"é","passed":false},{"actual":"x�","check":"incomplete final sequence rejected","expected":null,"passed":false},{"actual":"�x","check":"invalid continuation rejected","expected":null,"passed":false},{"actual":"","check":"no chunks","expected":"","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two-byte sequence split\", \"actual\": \"x��\", \"expected\": \"xé\", \"passed\": false}, {\"check\": \"four-byte sequence split into single bytes\", \"actual\": \"����\", \"expected\": \"🙂\", \"passed\": false}, {\"check\": \"ASCII stream\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"empty chunks within a sequence\", \"actual\": \"��\", \"expected\": \"é\", \"passed\": false}, {\"check\": \"incomplete final sequence rejected\", \"actual\": \"x�\", \"expected\": null, \"passed\": false}, {\"check\": \"invalid continuation rejected\", \"actual\": \"�x\", \"expected\": null, \"passed\": false}, {\"check\": \"no chunks\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":32.914,"exit_code":0,"observations":[{"actual":"xé","check":"two-byte sequence split","expected":"xé","passed":true},{"actual":"🙂","check":"four-byte sequence split into single bytes","expected":"🙂","passed":true},{"actual":"ab","check":"ASCII stream","expected":"ab","passed":true},{"actual":"é","check":"empty chunks within a sequence","expected":"é","passed":true},{"actual":null,"check":"incomplete final sequence rejected","expected":null,"passed":true},{"actual":null,"check":"invalid continuation rejected","expected":null,"passed":true},{"actual":"","check":"no chunks","expected":"","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two-byte sequence split\", \"actual\": \"xé\", \"expected\": \"xé\", \"passed\": true}, {\"check\": \"four-byte sequence split into single bytes\", \"actual\": \"🙂\", \"expected\": \"🙂\", \"passed\": true}, {\"check\": \"ASCII stream\", \"actual\": \"ab\", \"expected\": \"ab\", \"passed\": true}, {\"check\": \"empty chunks within a sequence\", \"actual\": \"é\", \"expected\": \"é\", \"passed\": true}, {\"check\": \"incomplete final sequence rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"invalid continuation rejected\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"no chunks\", \"actual\": \"\", \"expected\": \"\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}