FAILURE MAP
← Case archive

FA-11311 / Media playlist lifecycle / Open access

Previous track history: Navigates backward at the exact restart threshold · case 01

Navigates backward at the exact restart threshold and produces an incorrect media-control or presentation result.

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

ROOT CAUSE

Navigates backward at the exact restart threshold. The fixture suite isolates this decision from network delivery and codec details.

THE FAILURE

Navigates backward at the exact restart threshold. The fixture suite isolates this decision from network delivery and codec details.

Unsuccessful approach: The alternative still fails because it appends the displaced current item after existing forward history.

Case contract

Previous restarts the current item at zero when position_ms is at least threshold; otherwise it pops the most recently played history occurrence and prepends current to forward history. With no past item, restart current. Inputs have nonnegative positions and positive threshold; duplicate history occurrences are meaningful.

Why this case matters

A deterministic in-memory media application model with explicit playlist, timeline or synchronization semantics. Does not implement codecs, transport protocols, rendering hardware or concurrent playback.

1 / The failure

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

N = 1
observations = []
def solve(current, position_ms, threshold, history, future):
    back=list(history); forward=list(future)
    if position_ms > threshold:
        return [current,0,back,forward]
    if not back: return [current,0,back,forward]
    previous=back.pop()
    if current is not None: forward.insert(0,current)
    return [previous,0,back,forward]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('recent history selected', solve('c', 0, 3000, ['a', 'b'], []), ['b', 0, ['a'], ['c']])
check('restart at exact threshold', solve('c', 3000, 3000, ['a', 'b'], ['d']), ['c', 0, ['a', 'b'], ['d']])
check('forward stack preserves order', solve('c', 100, 3000, ['a', 'b'], ['d', 'e']), ['b', 0, ['a'], ['c', 'd', 'e']])
check('duplicate past retained', solve('c', 0, 3000, ['a', 'a', 'b'], []), ['b', 0, ['a', 'a'], ['c']])
check('no past restarts', solve('a', 0, 3000, [], ['b']), ['a', 0, [], ['b']])
check('absent current not inserted', solve(None, 0, 3000, ['a'], ['b']), ['a', 0, [], ['b']])
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
recent history selected['b', 0, ['a'], ['c']]['b', 0, ['a'], ['c']]Passed
restart at exact threshold['b', 0, ['a'], ['c', 'd']]['c', 0, ['a', 'b'], ['d']]Failed
forward stack preserves order['b', 0, ['a'], ['c', 'd', 'e']]['b', 0, ['a'], ['c', 'd', 'e']]Passed
duplicate past retained['b', 0, ['a', 'a'], ['c']]['b', 0, ['a', 'a'], ['c']]Passed
no past restarts['a', 0, [], ['b']]['a', 0, [], ['b']]Passed
absent current not inserted['a', 0, [], ['b']]['a', 0, [], ['b']]Passed

SHA-256 / 92706a8e430a2070cf9bc909594199d7ee5b8d886fe20a070bc5259ddd78233b

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(current, position_ms, threshold, history, future):
    back=list(history); forward=list(future)
    if position_ms >= threshold:
        return [current,0,back,forward]
    if not back: return [current,0,back,forward]
    previous=back.pop()
    if current is not None: forward.append(current)
    return [previous,0,back,forward]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('recent history selected', solve('c', 0, 3000, ['a', 'b'], []), ['b', 0, ['a'], ['c']])
check('restart at exact threshold', solve('c', 3000, 3000, ['a', 'b'], ['d']), ['c', 0, ['a', 'b'], ['d']])
check('forward stack preserves order', solve('c', 100, 3000, ['a', 'b'], ['d', 'e']), ['b', 0, ['a'], ['c', 'd', 'e']])
check('duplicate past retained', solve('c', 0, 3000, ['a', 'a', 'b'], []), ['b', 0, ['a', 'a'], ['c']])
check('no past restarts', solve('a', 0, 3000, [], ['b']), ['a', 0, [], ['b']])
check('absent current not inserted', solve(None, 0, 3000, ['a'], ['b']), ['a', 0, [], ['b']])
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
recent history selected['b', 0, ['a'], ['c']]['b', 0, ['a'], ['c']]Passed
restart at exact threshold['c', 0, ['a', 'b'], ['d']]['c', 0, ['a', 'b'], ['d']]Passed
forward stack preserves order['b', 0, ['a'], ['d', 'e', 'c']]['b', 0, ['a'], ['c', 'd', 'e']]Failed
duplicate past retained['b', 0, ['a', 'a'], ['c']]['b', 0, ['a', 'a'], ['c']]Passed
no past restarts['a', 0, [], ['b']]['a', 0, [], ['b']]Passed
absent current not inserted['a', 0, [], ['b']]['a', 0, [], ['b']]Passed

SHA-256 / 597a5da3e9b6d17faf85aa853e36b5567d03e9c38d0697bc78b87ac6d6493e76

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

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:46.873809+00:00.

Case digest / 42a0c1cf71bf0e01dafb5193067896433ff0c106ec928d88ca19e2d971b83ef2