FA-11196 / Streaming segment lifecycle / Open access
Manifest refresh retains terminal flag · case 01
A failed refresh resets terminal state from incomplete metadata.
ROOT CAUSE
A failed refresh resets terminal state from incomplete metadata.
VERIFIED REPAIR
Preserve the media contract: For a local replaceable-manifest cache, a complete response replaces terminal state; a partial/failed response leaves prior terminal state unchanged. Streams may be explicitly restarted.
Unsuccessful approach: Making terminal state permanently sticky prevents a complete restarted manifest from reopening the stream.
Case contract
For a local replaceable-manifest cache, a complete response replaces terminal state; a partial/failed response leaves prior terminal state unchanged. Streams may be explicitly restarted.
Why this case matters
A deterministic local media controller stage; metadata and downloaded data are supplied explicitly. No external player, service or codec is required.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(previous_ended, response_ended, response_complete):
return response_ended
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*(True, False, False)),True)
check('fixture 2',solve(*(False, True, True)),True)
check('fixture 3',solve(*(True, False, True)),False)
check('fixture 4',solve(*(False, False, False)),False)
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | False | True | Failed |
| fixture 2 | True | True | Passed |
| fixture 3 | False | False | Passed |
| fixture 4 | False | False | Passed |
SHA-256 / 975b3e0156fd4a4b5483743113f8db0064e1566cf577361ecd0cc29b9239e107
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(previous_ended, response_ended, response_complete):
return previous_ended or response_ended
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*(True, False, False)),True)
check('fixture 2',solve(*(False, True, True)),True)
check('fixture 3',solve(*(True, False, True)),False)
check('fixture 4',solve(*(False, False, False)),False)
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | True | True | Passed |
| fixture 2 | True | True | Passed |
| fixture 3 | True | False | Failed |
| fixture 4 | False | False | Passed |
SHA-256 / 87687faa6fbd5889f08714c66f22b69a7022339e5917ae0422f2a50b1cf81436
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(previous_ended, response_ended, response_complete):
return response_ended if response_complete else previous_ended
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1',solve(*(True, False, False)),True)
check('fixture 2',solve(*(False, True, True)),True)
check('fixture 3',solve(*(True, False, True)),False)
check('fixture 4',solve(*(False, False, False)),False)
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | True | True | Passed |
| fixture 2 | True | True | Passed |
| fixture 3 | False | False | Passed |
| fixture 4 | False | False | Passed |
SHA-256 / 23bada23e3083cd3ec2919b591ff2c02ffaca7c60238cd211ec7e975b8bc6ef0
Verification & scope
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:38:45.813174+00:00.
Case digest / 158dad1316206ee08aecb1c07043d8df96f5814c58cabefa58d07b63d5657853