FAILURE MAP
← Case archive

FA-74256 / Feature flag rollout bucketing / Open access

Bootstrapped flag payload merge: Deleted flags are still returned · case 01

Flags archived on the server keep appearing in the client flag list.

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

ROOT CAUSE

The final projection does not filter entries marked deleted.

VERIFIED REPAIR

Exclude merged entries whose deleted marker is set.

Unsuccessful approach: Popping flags on every incoming tombstone ignores the version rule and deletes newer local values.

Case contract

Payloads are {version, flags: {key: {value, version, deleted?}}}. An incoming payload with a lower payload version than local is ignored entirely. Otherwise each incoming flag replaces the local entry only when the key is new or its flag version is strictly higher; deleted tombstones follow the same rule. Return sorted [key, value] pairs for merged flags that are not deleted.

Why this case matters

Clients bootstrap from HTML-embedded flags and then stream updates; stale data must not win.

1 / The failure

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

N = 1
observations = []
def solve(local, incoming):
    merged = dict(local['flags'])
    if incoming['version'] >= local['version']:
        for k, f in incoming['flags'].items():
            cur = merged.get(k)
            if cur is None or f['version'] > cur['version']:
                merged[k] = f
    return sorted([k, f['value']] for k, f in merged.items())
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('payload pair sample 1',
   [{'version': 3, 'flags': {'d': {'value': 'x', 'version': 1}, 'a': {'value': True, 'version': 0}}},
    {'version': 1,
     'flags': {'d': {'value': False, 'version': 1}, 'a': {'value': 2, 'version': 2, 'deleted': True}}}],
   [['a', True], ['d', 'x']]),
  ('payload pair sample 2', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),
  ('payload pair sample 3',
   [{'version': 3, 'flags': {'a': {'value': 2, 'version': 3}}},
    {'version': 2,
     'flags': {'b': {'value': False, 'version': 0, 'deleted': True},
               'd': {'value': 2, 'version': 3, 'deleted': True},
               'c': {'value': 2, 'version': 2, 'deleted': True}}}],
   [['a', 2]])],
 [('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('payload pair sample 6',
   [{'version': 3,
     'flags': {'c': {'value': True, 'version': 1},
               'd': {'value': False, 'version': 1},
               'a': {'value': 'x', 'version': 2}}},
    {'version': 3, 'flags': {}}],
   [['a', 'x'], ['c', True], ['d', False]]),
  ('payload pair sample 19',
   [{'version': 3,
     'flags': {'d': {'value': False, 'version': 0}, 'a': {'value': False, 'version': 0, 'deleted': True}}},
    {'version': 2, 'flags': {'d': {'value': True, 'version': 1}}}],
   [['d', False]]),
  ('payload pair sample 53',
   [{'version': 3,
     'flags': {'d': {'value': True, 'version': 3},
               'b': {'value': 2, 'version': 0},
               'a': {'value': 'x', 'version': 3}}},
    {'version': 3, 'flags': {'a': {'value': 'x', 'version': 0, 'deleted': True}}}],
   [['a', 'x'], ['b', 2], ['d', True]])],
 [('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 11',
   [{'version': 2,
     'flags': {'d': {'value': 2, 'version': 2, 'deleted': True},
               'b': {'value': 'x', 'version': 2},
               'a': {'value': False, 'version': 1}}},
    {'version': 3,
     'flags': {'d': {'value': 2, 'version': 2},
               'a': {'value': 2, 'version': 2},
               'b': {'value': False, 'version': 0}}}],
   [['a', 2], ['b', 'x']]),
  ('payload pair sample 36',
   [{'version': 2, 'flags': {}},
    {'version': 2,
     'flags': {'c': {'value': 'x', 'version': 0},
               'd': {'value': 2, 'version': 3},
               'a': {'value': False, 'version': 1, 'deleted': True}}}],
   [['c', 'x'], ['d', 2]]),
  ('payload pair sample 60',
   [{'version': 1, 'flags': {'c': {'value': 2, 'version': 3}, 'b': {'value': 2, 'version': 2}}},
    {'version': 1,
     'flags': {'c': {'value': 2, 'version': 2},
               'b': {'value': 2, 'version': 2, 'deleted': True},
               'd': {'value': False, 'version': 2}}}],
   [['b', 2], ['c', 2], ['d', False]])],
 [('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),
  ('payload pair sample 22',
   [{'version': 1,
     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},
    {'version': 2,
     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],
   [['b', 2], ['c', True]]),
  ('payload pair sample 48',
   [{'version': 3,
     'flags': {'c': {'value': True, 'version': 0, 'deleted': True},
               'a': {'value': False, 'version': 3},
               'b': {'value': True, 'version': 0}}},
    {'version': 3, 'flags': {}}],
   [['a', False], ['b', True]])],
 [('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 21',
   [{'version': 2,
     'flags': {'a': {'value': False, 'version': 2, 'deleted': True},
               'b': {'value': False, 'version': 1, 'deleted': True}}},
    {'version': 1,
     'flags': {'d': {'value': True, 'version': 0},
               'c': {'value': False, 'version': 3},
               'b': {'value': True, 'version': 3}}}],
   []),
  ('payload pair sample 22',
   [{'version': 1,
     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},
    {'version': 2,
     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],
   [['b', 2], ['c', True]]),
  ('payload pair sample 54',
   [{'version': 2, 'flags': {'b': {'value': 'x', 'version': 1}}},
    {'version': 2, 'flags': {'b': {'value': True, 'version': 0, 'deleted': True}}}],
   [['b', 'x']])]]
for label, args, expected in fixtures[N - 1]:
    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
equal flag version keeps the local value[['a', 'local']][['a', 'local']]Passed
newer tombstone deletes the flag[['a', None]][]Failed
older tombstone is ignored[['a', True]][['a', True]]Passed
equal payload version still merges[['a', 2]][['a', 2]]Passed
stale payload is ignored[['a', 1]][['a', 1]]Passed
payload pair sample 1[['a', True], ['d', 'x']][['a', True], ['d', 'x']]Passed
payload pair sample 2[][]Passed
payload pair sample 3[['a', 2]][['a', 2]]Passed

SHA-256 / 0e44516fb5f66a0a2bf5202866a5d92be558fe731492027f6a96c48ff965fa04

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(local, incoming):
    merged = dict(local['flags'])
    if incoming['version'] >= local['version']:
        for k, f in incoming['flags'].items():
            cur = merged.get(k)
            if f.get('deleted'):
                merged.pop(k, None)
                continue
            if cur is None or f['version'] > cur['version']:
                merged[k] = f
    return sorted([k, f['value']] for k, f in merged.items() if not f.get('deleted'))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('payload pair sample 1',
   [{'version': 3, 'flags': {'d': {'value': 'x', 'version': 1}, 'a': {'value': True, 'version': 0}}},
    {'version': 1,
     'flags': {'d': {'value': False, 'version': 1}, 'a': {'value': 2, 'version': 2, 'deleted': True}}}],
   [['a', True], ['d', 'x']]),
  ('payload pair sample 2', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),
  ('payload pair sample 3',
   [{'version': 3, 'flags': {'a': {'value': 2, 'version': 3}}},
    {'version': 2,
     'flags': {'b': {'value': False, 'version': 0, 'deleted': True},
               'd': {'value': 2, 'version': 3, 'deleted': True},
               'c': {'value': 2, 'version': 2, 'deleted': True}}}],
   [['a', 2]])],
 [('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('payload pair sample 6',
   [{'version': 3,
     'flags': {'c': {'value': True, 'version': 1},
               'd': {'value': False, 'version': 1},
               'a': {'value': 'x', 'version': 2}}},
    {'version': 3, 'flags': {}}],
   [['a', 'x'], ['c', True], ['d', False]]),
  ('payload pair sample 19',
   [{'version': 3,
     'flags': {'d': {'value': False, 'version': 0}, 'a': {'value': False, 'version': 0, 'deleted': True}}},
    {'version': 2, 'flags': {'d': {'value': True, 'version': 1}}}],
   [['d', False]]),
  ('payload pair sample 53',
   [{'version': 3,
     'flags': {'d': {'value': True, 'version': 3},
               'b': {'value': 2, 'version': 0},
               'a': {'value': 'x', 'version': 3}}},
    {'version': 3, 'flags': {'a': {'value': 'x', 'version': 0, 'deleted': True}}}],
   [['a', 'x'], ['b', 2], ['d', True]])],
 [('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 11',
   [{'version': 2,
     'flags': {'d': {'value': 2, 'version': 2, 'deleted': True},
               'b': {'value': 'x', 'version': 2},
               'a': {'value': False, 'version': 1}}},
    {'version': 3,
     'flags': {'d': {'value': 2, 'version': 2},
               'a': {'value': 2, 'version': 2},
               'b': {'value': False, 'version': 0}}}],
   [['a', 2], ['b', 'x']]),
  ('payload pair sample 36',
   [{'version': 2, 'flags': {}},
    {'version': 2,
     'flags': {'c': {'value': 'x', 'version': 0},
               'd': {'value': 2, 'version': 3},
               'a': {'value': False, 'version': 1, 'deleted': True}}}],
   [['c', 'x'], ['d', 2]]),
  ('payload pair sample 60',
   [{'version': 1, 'flags': {'c': {'value': 2, 'version': 3}, 'b': {'value': 2, 'version': 2}}},
    {'version': 1,
     'flags': {'c': {'value': 2, 'version': 2},
               'b': {'value': 2, 'version': 2, 'deleted': True},
               'd': {'value': False, 'version': 2}}}],
   [['b', 2], ['c', 2], ['d', False]])],
 [('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),
  ('payload pair sample 22',
   [{'version': 1,
     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},
    {'version': 2,
     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],
   [['b', 2], ['c', True]]),
  ('payload pair sample 48',
   [{'version': 3,
     'flags': {'c': {'value': True, 'version': 0, 'deleted': True},
               'a': {'value': False, 'version': 3},
               'b': {'value': True, 'version': 0}}},
    {'version': 3, 'flags': {}}],
   [['a', False], ['b', True]])],
 [('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 21',
   [{'version': 2,
     'flags': {'a': {'value': False, 'version': 2, 'deleted': True},
               'b': {'value': False, 'version': 1, 'deleted': True}}},
    {'version': 1,
     'flags': {'d': {'value': True, 'version': 0},
               'c': {'value': False, 'version': 3},
               'b': {'value': True, 'version': 3}}}],
   []),
  ('payload pair sample 22',
   [{'version': 1,
     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},
    {'version': 2,
     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],
   [['b', 2], ['c', True]]),
  ('payload pair sample 54',
   [{'version': 2, 'flags': {'b': {'value': 'x', 'version': 1}}},
    {'version': 2, 'flags': {'b': {'value': True, 'version': 0, 'deleted': True}}}],
   [['b', 'x']])]]
for label, args, expected in fixtures[N - 1]:
    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
equal flag version keeps the local value[['a', 'local']][['a', 'local']]Passed
newer tombstone deletes the flag[][]Passed
older tombstone is ignored[][['a', True]]Failed
equal payload version still merges[['a', 2]][['a', 2]]Passed
stale payload is ignored[['a', 1]][['a', 1]]Passed
payload pair sample 1[['a', True], ['d', 'x']][['a', True], ['d', 'x']]Passed
payload pair sample 2[][]Passed
payload pair sample 3[['a', 2]][['a', 2]]Passed

SHA-256 / 572d1654781a07ae3ab614b72d55872a74cd24ee52d7f7180e4e35d0916d5dd9

3 / The verified repair

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

N = 1
observations = []
def solve(local, incoming):
    merged = dict(local['flags'])
    if incoming['version'] >= local['version']:
        for k, f in incoming['flags'].items():
            cur = merged.get(k)
            if cur is None or f['version'] > cur['version']:
                merged[k] = f
    return sorted([k, f['value']] for k, f in merged.items() if not f.get('deleted'))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('payload pair sample 1',
   [{'version': 3, 'flags': {'d': {'value': 'x', 'version': 1}, 'a': {'value': True, 'version': 0}}},
    {'version': 1,
     'flags': {'d': {'value': False, 'version': 1}, 'a': {'value': 2, 'version': 2, 'deleted': True}}}],
   [['a', True], ['d', 'x']]),
  ('payload pair sample 2', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),
  ('payload pair sample 3',
   [{'version': 3, 'flags': {'a': {'value': 2, 'version': 3}}},
    {'version': 2,
     'flags': {'b': {'value': False, 'version': 0, 'deleted': True},
               'd': {'value': 2, 'version': 3, 'deleted': True},
               'c': {'value': 2, 'version': 2, 'deleted': True}}}],
   [['a', 2]])],
 [('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('payload pair sample 6',
   [{'version': 3,
     'flags': {'c': {'value': True, 'version': 1},
               'd': {'value': False, 'version': 1},
               'a': {'value': 'x', 'version': 2}}},
    {'version': 3, 'flags': {}}],
   [['a', 'x'], ['c', True], ['d', False]]),
  ('payload pair sample 19',
   [{'version': 3,
     'flags': {'d': {'value': False, 'version': 0}, 'a': {'value': False, 'version': 0, 'deleted': True}}},
    {'version': 2, 'flags': {'d': {'value': True, 'version': 1}}}],
   [['d', False]]),
  ('payload pair sample 53',
   [{'version': 3,
     'flags': {'d': {'value': True, 'version': 3},
               'b': {'value': 2, 'version': 0},
               'a': {'value': 'x', 'version': 3}}},
    {'version': 3, 'flags': {'a': {'value': 'x', 'version': 0, 'deleted': True}}}],
   [['a', 'x'], ['b', 2], ['d', True]])],
 [('older tombstone is ignored',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},
    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],
   [['a', True]]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 11',
   [{'version': 2,
     'flags': {'d': {'value': 2, 'version': 2, 'deleted': True},
               'b': {'value': 'x', 'version': 2},
               'a': {'value': False, 'version': 1}}},
    {'version': 3,
     'flags': {'d': {'value': 2, 'version': 2},
               'a': {'value': 2, 'version': 2},
               'b': {'value': False, 'version': 0}}}],
   [['a', 2], ['b', 'x']]),
  ('payload pair sample 36',
   [{'version': 2, 'flags': {}},
    {'version': 2,
     'flags': {'c': {'value': 'x', 'version': 0},
               'd': {'value': 2, 'version': 3},
               'a': {'value': False, 'version': 1, 'deleted': True}}}],
   [['c', 'x'], ['d', 2]]),
  ('payload pair sample 60',
   [{'version': 1, 'flags': {'c': {'value': 2, 'version': 3}, 'b': {'value': 2, 'version': 2}}},
    {'version': 1,
     'flags': {'c': {'value': 2, 'version': 2},
               'b': {'value': 2, 'version': 2, 'deleted': True},
               'd': {'value': False, 'version': 2}}}],
   [['b', 2], ['c', 2], ['d', False]])],
 [('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('equal payload version still merges',
   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],
   [['a', 2]]),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),
  ('payload pair sample 22',
   [{'version': 1,
     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},
    {'version': 2,
     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],
   [['b', 2], ['c', True]]),
  ('payload pair sample 48',
   [{'version': 3,
     'flags': {'c': {'value': True, 'version': 0, 'deleted': True},
               'a': {'value': False, 'version': 3},
               'b': {'value': True, 'version': 0}}},
    {'version': 3, 'flags': {}}],
   [['a', False], ['b', True]])],
 [('equal flag version keeps the local value',
   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},
    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],
   [['a', 'local']]),
  ('newer tombstone deletes the flag',
   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],
   []),
  ('stale payload is ignored',
   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},
    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],
   [['a', 1]]),
  ('new flag with version zero is adopted',
   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],
   [['b', 'on']]),
  ('output is sorted by key',
   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},
    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],
   [['a', 1], ['b', 2], ['c', 3]]),
  ('payload pair sample 21',
   [{'version': 2,
     'flags': {'a': {'value': False, 'version': 2, 'deleted': True},
               'b': {'value': False, 'version': 1, 'deleted': True}}},
    {'version': 1,
     'flags': {'d': {'value': True, 'version': 0},
               'c': {'value': False, 'version': 3},
               'b': {'value': True, 'version': 3}}}],
   []),
  ('payload pair sample 22',
   [{'version': 1,
     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},
    {'version': 2,
     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],
   [['b', 2], ['c', True]]),
  ('payload pair sample 54',
   [{'version': 2, 'flags': {'b': {'value': 'x', 'version': 1}}},
    {'version': 2, 'flags': {'b': {'value': True, 'version': 0, 'deleted': True}}}],
   [['b', 'x']])]]
for label, args, expected in fixtures[N - 1]:
    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
equal flag version keeps the local value[['a', 'local']][['a', 'local']]Passed
newer tombstone deletes the flag[][]Passed
older tombstone is ignored[['a', True]][['a', True]]Passed
equal payload version still merges[['a', 2]][['a', 2]]Passed
stale payload is ignored[['a', 1]][['a', 1]]Passed
payload pair sample 1[['a', True], ['d', 'x']][['a', True], ['d', 'x']]Passed
payload pair sample 2[][]Passed
payload pair sample 3[['a', 2]][['a', 2]]Passed

SHA-256 / 35cebbcca6b8213bc21d59bf373f56f719cd01cf610d0133f25647c3099980b7

Verification & scope

A deterministic toy flag-evaluation model with a stipulated contract; it does not reproduce any vendor SDK byte for byte. 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:48:55.021022+00:00.

Case digest / e42d69fd0598d0fc84a75f9bab94b2b292615323a4c1efe8040152eacb334713