{"abstract":"Flags archived on the server keep appearing in the client flag list.","category":"Feature flag rollout bucketing","checks":8,"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.","evaluation_group":"w2-feature-flag-rollout-bucketing-bootstrap-merge","failed_approach":"Popping flags on every incoming tombstone ignores the version rule and deletes newer local values.","family":"w2-feature-flag-rollout-bucketing-bootstrap-merge-tombstone-output","id":"FA-74256","implementations":{"attempt":{"sha256":"572d1654781a07ae3ab614b72d55872a74cd24ee52d7f7180e4e35d0916d5dd9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(local, incoming):\n    merged = dict(local['flags'])\n    if incoming['version'] >= local['version']:\n        for k, f in incoming['flags'].items():\n            cur = merged.get(k)\n            if f.get('deleted'):\n                merged.pop(k, None)\n                continue\n            if cur is None or f['version'] > cur['version']:\n                merged[k] = f\n    return sorted([k, f['value']] for k, f in merged.items() if not f.get('deleted'))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('payload pair sample 1',\n   [{'version': 3, 'flags': {'d': {'value': 'x', 'version': 1}, 'a': {'value': True, 'version': 0}}},\n    {'version': 1,\n     'flags': {'d': {'value': False, 'version': 1}, 'a': {'value': 2, 'version': 2, 'deleted': True}}}],\n   [['a', True], ['d', 'x']]),\n  ('payload pair sample 2', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 3',\n   [{'version': 3, 'flags': {'a': {'value': 2, 'version': 3}}},\n    {'version': 2,\n     'flags': {'b': {'value': False, 'version': 0, 'deleted': True},\n               'd': {'value': 2, 'version': 3, 'deleted': True},\n               'c': {'value': 2, 'version': 2, 'deleted': True}}}],\n   [['a', 2]])],\n [('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('payload pair sample 6',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 1},\n               'd': {'value': False, 'version': 1},\n               'a': {'value': 'x', 'version': 2}}},\n    {'version': 3, 'flags': {}}],\n   [['a', 'x'], ['c', True], ['d', False]]),\n  ('payload pair sample 19',\n   [{'version': 3,\n     'flags': {'d': {'value': False, 'version': 0}, 'a': {'value': False, 'version': 0, 'deleted': True}}},\n    {'version': 2, 'flags': {'d': {'value': True, 'version': 1}}}],\n   [['d', False]]),\n  ('payload pair sample 53',\n   [{'version': 3,\n     'flags': {'d': {'value': True, 'version': 3},\n               'b': {'value': 2, 'version': 0},\n               'a': {'value': 'x', 'version': 3}}},\n    {'version': 3, 'flags': {'a': {'value': 'x', 'version': 0, 'deleted': True}}}],\n   [['a', 'x'], ['b', 2], ['d', True]])],\n [('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 11',\n   [{'version': 2,\n     'flags': {'d': {'value': 2, 'version': 2, 'deleted': True},\n               'b': {'value': 'x', 'version': 2},\n               'a': {'value': False, 'version': 1}}},\n    {'version': 3,\n     'flags': {'d': {'value': 2, 'version': 2},\n               'a': {'value': 2, 'version': 2},\n               'b': {'value': False, 'version': 0}}}],\n   [['a', 2], ['b', 'x']]),\n  ('payload pair sample 36',\n   [{'version': 2, 'flags': {}},\n    {'version': 2,\n     'flags': {'c': {'value': 'x', 'version': 0},\n               'd': {'value': 2, 'version': 3},\n               'a': {'value': False, 'version': 1, 'deleted': True}}}],\n   [['c', 'x'], ['d', 2]]),\n  ('payload pair sample 60',\n   [{'version': 1, 'flags': {'c': {'value': 2, 'version': 3}, 'b': {'value': 2, 'version': 2}}},\n    {'version': 1,\n     'flags': {'c': {'value': 2, 'version': 2},\n               'b': {'value': 2, 'version': 2, 'deleted': True},\n               'd': {'value': False, 'version': 2}}}],\n   [['b', 2], ['c', 2], ['d', False]])],\n [('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 22',\n   [{'version': 1,\n     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},\n    {'version': 2,\n     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],\n   [['b', 2], ['c', True]]),\n  ('payload pair sample 48',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 0, 'deleted': True},\n               'a': {'value': False, 'version': 3},\n               'b': {'value': True, 'version': 0}}},\n    {'version': 3, 'flags': {}}],\n   [['a', False], ['b', True]])],\n [('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 21',\n   [{'version': 2,\n     'flags': {'a': {'value': False, 'version': 2, 'deleted': True},\n               'b': {'value': False, 'version': 1, 'deleted': True}}},\n    {'version': 1,\n     'flags': {'d': {'value': True, 'version': 0},\n               'c': {'value': False, 'version': 3},\n               'b': {'value': True, 'version': 3}}}],\n   []),\n  ('payload pair sample 22',\n   [{'version': 1,\n     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},\n    {'version': 2,\n     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],\n   [['b', 2], ['c', True]]),\n  ('payload pair sample 54',\n   [{'version': 2, 'flags': {'b': {'value': 'x', 'version': 1}}},\n    {'version': 2, 'flags': {'b': {'value': True, 'version': 0, 'deleted': True}}}],\n   [['b', 'x']])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"0e44516fb5f66a0a2bf5202866a5d92be558fe731492027f6a96c48ff965fa04","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(local, incoming):\n    merged = dict(local['flags'])\n    if incoming['version'] >= local['version']:\n        for k, f in incoming['flags'].items():\n            cur = merged.get(k)\n            if cur is None or f['version'] > cur['version']:\n                merged[k] = f\n    return sorted([k, f['value']] for k, f in merged.items())\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('payload pair sample 1',\n   [{'version': 3, 'flags': {'d': {'value': 'x', 'version': 1}, 'a': {'value': True, 'version': 0}}},\n    {'version': 1,\n     'flags': {'d': {'value': False, 'version': 1}, 'a': {'value': 2, 'version': 2, 'deleted': True}}}],\n   [['a', True], ['d', 'x']]),\n  ('payload pair sample 2', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 3',\n   [{'version': 3, 'flags': {'a': {'value': 2, 'version': 3}}},\n    {'version': 2,\n     'flags': {'b': {'value': False, 'version': 0, 'deleted': True},\n               'd': {'value': 2, 'version': 3, 'deleted': True},\n               'c': {'value': 2, 'version': 2, 'deleted': True}}}],\n   [['a', 2]])],\n [('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('payload pair sample 6',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 1},\n               'd': {'value': False, 'version': 1},\n               'a': {'value': 'x', 'version': 2}}},\n    {'version': 3, 'flags': {}}],\n   [['a', 'x'], ['c', True], ['d', False]]),\n  ('payload pair sample 19',\n   [{'version': 3,\n     'flags': {'d': {'value': False, 'version': 0}, 'a': {'value': False, 'version': 0, 'deleted': True}}},\n    {'version': 2, 'flags': {'d': {'value': True, 'version': 1}}}],\n   [['d', False]]),\n  ('payload pair sample 53',\n   [{'version': 3,\n     'flags': {'d': {'value': True, 'version': 3},\n               'b': {'value': 2, 'version': 0},\n               'a': {'value': 'x', 'version': 3}}},\n    {'version': 3, 'flags': {'a': {'value': 'x', 'version': 0, 'deleted': True}}}],\n   [['a', 'x'], ['b', 2], ['d', True]])],\n [('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 11',\n   [{'version': 2,\n     'flags': {'d': {'value': 2, 'version': 2, 'deleted': True},\n               'b': {'value': 'x', 'version': 2},\n               'a': {'value': False, 'version': 1}}},\n    {'version': 3,\n     'flags': {'d': {'value': 2, 'version': 2},\n               'a': {'value': 2, 'version': 2},\n               'b': {'value': False, 'version': 0}}}],\n   [['a', 2], ['b', 'x']]),\n  ('payload pair sample 36',\n   [{'version': 2, 'flags': {}},\n    {'version': 2,\n     'flags': {'c': {'value': 'x', 'version': 0},\n               'd': {'value': 2, 'version': 3},\n               'a': {'value': False, 'version': 1, 'deleted': True}}}],\n   [['c', 'x'], ['d', 2]]),\n  ('payload pair sample 60',\n   [{'version': 1, 'flags': {'c': {'value': 2, 'version': 3}, 'b': {'value': 2, 'version': 2}}},\n    {'version': 1,\n     'flags': {'c': {'value': 2, 'version': 2},\n               'b': {'value': 2, 'version': 2, 'deleted': True},\n               'd': {'value': False, 'version': 2}}}],\n   [['b', 2], ['c', 2], ['d', False]])],\n [('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 22',\n   [{'version': 1,\n     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},\n    {'version': 2,\n     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],\n   [['b', 2], ['c', True]]),\n  ('payload pair sample 48',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 0, 'deleted': True},\n               'a': {'value': False, 'version': 3},\n               'b': {'value': True, 'version': 0}}},\n    {'version': 3, 'flags': {}}],\n   [['a', False], ['b', True]])],\n [('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 21',\n   [{'version': 2,\n     'flags': {'a': {'value': False, 'version': 2, 'deleted': True},\n               'b': {'value': False, 'version': 1, 'deleted': True}}},\n    {'version': 1,\n     'flags': {'d': {'value': True, 'version': 0},\n               'c': {'value': False, 'version': 3},\n               'b': {'value': True, 'version': 3}}}],\n   []),\n  ('payload pair sample 22',\n   [{'version': 1,\n     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},\n    {'version': 2,\n     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],\n   [['b', 2], ['c', True]]),\n  ('payload pair sample 54',\n   [{'version': 2, 'flags': {'b': {'value': 'x', 'version': 1}}},\n    {'version': 2, 'flags': {'b': {'value': True, 'version': 0, 'deleted': True}}}],\n   [['b', 'x']])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"35cebbcca6b8213bc21d59bf373f56f719cd01cf610d0133f25647c3099980b7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(local, incoming):\n    merged = dict(local['flags'])\n    if incoming['version'] >= local['version']:\n        for k, f in incoming['flags'].items():\n            cur = merged.get(k)\n            if cur is None or f['version'] > cur['version']:\n                merged[k] = f\n    return sorted([k, f['value']] for k, f in merged.items() if not f.get('deleted'))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('payload pair sample 1',\n   [{'version': 3, 'flags': {'d': {'value': 'x', 'version': 1}, 'a': {'value': True, 'version': 0}}},\n    {'version': 1,\n     'flags': {'d': {'value': False, 'version': 1}, 'a': {'value': 2, 'version': 2, 'deleted': True}}}],\n   [['a', True], ['d', 'x']]),\n  ('payload pair sample 2', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 3',\n   [{'version': 3, 'flags': {'a': {'value': 2, 'version': 3}}},\n    {'version': 2,\n     'flags': {'b': {'value': False, 'version': 0, 'deleted': True},\n               'd': {'value': 2, 'version': 3, 'deleted': True},\n               'c': {'value': 2, 'version': 2, 'deleted': True}}}],\n   [['a', 2]])],\n [('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('payload pair sample 6',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 1},\n               'd': {'value': False, 'version': 1},\n               'a': {'value': 'x', 'version': 2}}},\n    {'version': 3, 'flags': {}}],\n   [['a', 'x'], ['c', True], ['d', False]]),\n  ('payload pair sample 19',\n   [{'version': 3,\n     'flags': {'d': {'value': False, 'version': 0}, 'a': {'value': False, 'version': 0, 'deleted': True}}},\n    {'version': 2, 'flags': {'d': {'value': True, 'version': 1}}}],\n   [['d', False]]),\n  ('payload pair sample 53',\n   [{'version': 3,\n     'flags': {'d': {'value': True, 'version': 3},\n               'b': {'value': 2, 'version': 0},\n               'a': {'value': 'x', 'version': 3}}},\n    {'version': 3, 'flags': {'a': {'value': 'x', 'version': 0, 'deleted': True}}}],\n   [['a', 'x'], ['b', 2], ['d', True]])],\n [('older tombstone is ignored',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 3}}},\n    {'version': 2, 'flags': {'a': {'value': None, 'version': 1, 'deleted': True}}}],\n   [['a', True]]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 11',\n   [{'version': 2,\n     'flags': {'d': {'value': 2, 'version': 2, 'deleted': True},\n               'b': {'value': 'x', 'version': 2},\n               'a': {'value': False, 'version': 1}}},\n    {'version': 3,\n     'flags': {'d': {'value': 2, 'version': 2},\n               'a': {'value': 2, 'version': 2},\n               'b': {'value': False, 'version': 0}}}],\n   [['a', 2], ['b', 'x']]),\n  ('payload pair sample 36',\n   [{'version': 2, 'flags': {}},\n    {'version': 2,\n     'flags': {'c': {'value': 'x', 'version': 0},\n               'd': {'value': 2, 'version': 3},\n               'a': {'value': False, 'version': 1, 'deleted': True}}}],\n   [['c', 'x'], ['d', 2]]),\n  ('payload pair sample 60',\n   [{'version': 1, 'flags': {'c': {'value': 2, 'version': 3}, 'b': {'value': 2, 'version': 2}}},\n    {'version': 1,\n     'flags': {'c': {'value': 2, 'version': 2},\n               'b': {'value': 2, 'version': 2, 'deleted': True},\n               'd': {'value': False, 'version': 2}}}],\n   [['b', 2], ['c', 2], ['d', False]])],\n [('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('equal payload version still merges',\n   [{'version': 2, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 2}}}],\n   [['a', 2]]),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 22',\n   [{'version': 1,\n     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},\n    {'version': 2,\n     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],\n   [['b', 2], ['c', True]]),\n  ('payload pair sample 48',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 0, 'deleted': True},\n               'a': {'value': False, 'version': 3},\n               'b': {'value': True, 'version': 0}}},\n    {'version': 3, 'flags': {}}],\n   [['a', False], ['b', True]])],\n [('equal flag version keeps the local value',\n   [{'version': 1, 'flags': {'a': {'value': 'local', 'version': 2}}},\n    {'version': 2, 'flags': {'a': {'value': 'remote', 'version': 2}}}],\n   [['a', 'local']]),\n  ('newer tombstone deletes the flag',\n   [{'version': 1, 'flags': {'a': {'value': True, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': None, 'version': 2, 'deleted': True}}}],\n   []),\n  ('stale payload is ignored',\n   [{'version': 3, 'flags': {'a': {'value': 1, 'version': 1}}},\n    {'version': 2, 'flags': {'a': {'value': 2, 'version': 5}}}],\n   [['a', 1]]),\n  ('new flag with version zero is adopted',\n   [{'version': 1, 'flags': {}}, {'version': 1, 'flags': {'b': {'value': 'on', 'version': 0}}}],\n   [['b', 'on']]),\n  ('output is sorted by key',\n   [{'version': 1, 'flags': {'c': {'value': 3, 'version': 1}}},\n    {'version': 1, 'flags': {'a': {'value': 1, 'version': 1}, 'b': {'value': 2, 'version': 1}}}],\n   [['a', 1], ['b', 2], ['c', 3]]),\n  ('payload pair sample 21',\n   [{'version': 2,\n     'flags': {'a': {'value': False, 'version': 2, 'deleted': True},\n               'b': {'value': False, 'version': 1, 'deleted': True}}},\n    {'version': 1,\n     'flags': {'d': {'value': True, 'version': 0},\n               'c': {'value': False, 'version': 3},\n               'b': {'value': True, 'version': 3}}}],\n   []),\n  ('payload pair sample 22',\n   [{'version': 1,\n     'flags': {'b': {'value': 2, 'version': 1}, 'a': {'value': 2, 'version': 1, 'deleted': True}}},\n    {'version': 2,\n     'flags': {'b': {'value': True, 'version': 0, 'deleted': True}, 'c': {'value': True, 'version': 3}}}],\n   [['b', 2], ['c', True]]),\n  ('payload pair sample 54',\n   [{'version': 2, 'flags': {'b': {'value': 'x', 'version': 1}}},\n    {'version': 2, 'flags': {'b': {'value': True, 'version': 0, 'deleted': True}}}],\n   [['b', 'x']])]]\nfor label, args, expected in fixtures[N - 1]:\n    check(label, solve(*args), expected)\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":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-feature-flag-rollout-bucketing-bootstrap-merge-tombstone-output","generated_at":"2026-09-29T14:48:55.021022+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Clients bootstrap from HTML-embedded flags and then stream updates; stale data must not win.","repair":"Exclude merged entries whose deleted marker is set.","root_cause":"The final projection does not filter entries marked deleted.","sha256":"e42d69fd0598d0fc84a75f9bab94b2b292615323a4c1efe8040152eacb334713","title":"Bootstrapped flag payload merge: Deleted flags are still returned · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":37.259,"exit_code":1,"observations":[{"actual":[["a","local"]],"check":"equal flag version keeps the local value","expected":[["a","local"]],"passed":true},{"actual":[],"check":"newer tombstone deletes the flag","expected":[],"passed":true},{"actual":[],"check":"older tombstone is ignored","expected":[["a",true]],"passed":false},{"actual":[["a",2]],"check":"equal payload version still merges","expected":[["a",2]],"passed":true},{"actual":[["a",1]],"check":"stale payload is ignored","expected":[["a",1]],"passed":true},{"actual":[["a",true],["d","x"]],"check":"payload pair sample 1","expected":[["a",true],["d","x"]],"passed":true},{"actual":[],"check":"payload pair sample 2","expected":[],"passed":true},{"actual":[["a",2]],"check":"payload pair sample 3","expected":[["a",2]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"equal flag version keeps the local value\", \"actual\": [[\"a\", \"local\"]], \"expected\": [[\"a\", \"local\"]], \"passed\": true}, {\"check\": \"newer tombstone deletes the flag\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"older tombstone is ignored\", \"actual\": [], \"expected\": [[\"a\", true]], \"passed\": false}, {\"check\": \"equal payload version still merges\", \"actual\": [[\"a\", 2]], \"expected\": [[\"a\", 2]], \"passed\": true}, {\"check\": \"stale payload is ignored\", \"actual\": [[\"a\", 1]], \"expected\": [[\"a\", 1]], \"passed\": true}, {\"check\": \"payload pair sample 1\", \"actual\": [[\"a\", true], [\"d\", \"x\"]], \"expected\": [[\"a\", true], [\"d\", \"x\"]], \"passed\": true}, {\"check\": \"payload pair sample 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"payload pair sample 3\", \"actual\": [[\"a\", 2]], \"expected\": [[\"a\", 2]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.531,"exit_code":1,"observations":[{"actual":[["a","local"]],"check":"equal flag version keeps the local value","expected":[["a","local"]],"passed":true},{"actual":[["a",null]],"check":"newer tombstone deletes the flag","expected":[],"passed":false},{"actual":[["a",true]],"check":"older tombstone is ignored","expected":[["a",true]],"passed":true},{"actual":[["a",2]],"check":"equal payload version still merges","expected":[["a",2]],"passed":true},{"actual":[["a",1]],"check":"stale payload is ignored","expected":[["a",1]],"passed":true},{"actual":[["a",true],["d","x"]],"check":"payload pair sample 1","expected":[["a",true],["d","x"]],"passed":true},{"actual":[],"check":"payload pair sample 2","expected":[],"passed":true},{"actual":[["a",2]],"check":"payload pair sample 3","expected":[["a",2]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"equal flag version keeps the local value\", \"actual\": [[\"a\", \"local\"]], \"expected\": [[\"a\", \"local\"]], \"passed\": true}, {\"check\": \"newer tombstone deletes the flag\", \"actual\": [[\"a\", null]], \"expected\": [], \"passed\": false}, {\"check\": \"older tombstone is ignored\", \"actual\": [[\"a\", true]], \"expected\": [[\"a\", true]], \"passed\": true}, {\"check\": \"equal payload version still merges\", \"actual\": [[\"a\", 2]], \"expected\": [[\"a\", 2]], \"passed\": true}, {\"check\": \"stale payload is ignored\", \"actual\": [[\"a\", 1]], \"expected\": [[\"a\", 1]], \"passed\": true}, {\"check\": \"payload pair sample 1\", \"actual\": [[\"a\", true], [\"d\", \"x\"]], \"expected\": [[\"a\", true], [\"d\", \"x\"]], \"passed\": true}, {\"check\": \"payload pair sample 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"payload pair sample 3\", \"actual\": [[\"a\", 2]], \"expected\": [[\"a\", 2]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.407,"exit_code":0,"observations":[{"actual":[["a","local"]],"check":"equal flag version keeps the local value","expected":[["a","local"]],"passed":true},{"actual":[],"check":"newer tombstone deletes the flag","expected":[],"passed":true},{"actual":[["a",true]],"check":"older tombstone is ignored","expected":[["a",true]],"passed":true},{"actual":[["a",2]],"check":"equal payload version still merges","expected":[["a",2]],"passed":true},{"actual":[["a",1]],"check":"stale payload is ignored","expected":[["a",1]],"passed":true},{"actual":[["a",true],["d","x"]],"check":"payload pair sample 1","expected":[["a",true],["d","x"]],"passed":true},{"actual":[],"check":"payload pair sample 2","expected":[],"passed":true},{"actual":[["a",2]],"check":"payload pair sample 3","expected":[["a",2]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"equal flag version keeps the local value\", \"actual\": [[\"a\", \"local\"]], \"expected\": [[\"a\", \"local\"]], \"passed\": true}, {\"check\": \"newer tombstone deletes the flag\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"older tombstone is ignored\", \"actual\": [[\"a\", true]], \"expected\": [[\"a\", true]], \"passed\": true}, {\"check\": \"equal payload version still merges\", \"actual\": [[\"a\", 2]], \"expected\": [[\"a\", 2]], \"passed\": true}, {\"check\": \"stale payload is ignored\", \"actual\": [[\"a\", 1]], \"expected\": [[\"a\", 1]], \"passed\": true}, {\"check\": \"payload pair sample 1\", \"actual\": [[\"a\", true], [\"d\", \"x\"]], \"expected\": [[\"a\", true], [\"d\", \"x\"]], \"passed\": true}, {\"check\": \"payload pair sample 2\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"payload pair sample 3\", \"actual\": [[\"a\", 2]], \"expected\": [[\"a\", 2]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}