{"abstract":"A replayed stream event with the same flag version flips the value back to an older payload.","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":"Comparing payload versions instead of flag versions lets any newer payload overwrite every flag.","family":"w2-feature-flag-rollout-bucketing-bootstrap-merge-flag-version-tie","id":"FA-74251","implementations":{"attempt":{"sha256":"f96387b3a7b36dee61398ac269a610fd97390cc6c3b78e09b426fc521e099353","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 incoming['version'] > local['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 [('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  ('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 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 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 [('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 12',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 3},\n               'd': {'value': 'x', 'version': 0, 'deleted': True},\n               'a': {'value': False, 'version': 0}}},\n    {'version': 1,\n     'flags': {'b': {'value': False, 'version': 2},\n               'd': {'value': True, 'version': 0},\n               'a': {'value': True, 'version': 1, 'deleted': True}}}],\n   [['a', False], ['c', True]]),\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 5',\n   [{'version': 2, 'flags': {'b': {'value': 2, 'version': 3}}},\n    {'version': 2,\n     'flags': {'c': {'value': False, 'version': 1},\n               'b': {'value': True, 'version': 3},\n               'a': {'value': False, 'version': 1, 'deleted': True}}}],\n   [['b', 2], ['c', False]]),\n  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 40',\n   [{'version': 2,\n     'flags': {'d': {'value': 'x', 'version': 0},\n               'c': {'value': False, 'version': 1, 'deleted': True},\n               'b': {'value': 2, 'version': 2}}},\n    {'version': 3,\n     'flags': {'b': {'value': True, 'version': 1}, 'c': {'value': False, 'version': 0, 'deleted': True}}}],\n   [['b', 2], ['d', 'x']])],\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 10',\n   [{'version': 3, 'flags': {'d': {'value': True, 'version': 0}, 'c': {'value': 2, 'version': 3}}},\n    {'version': 3, 'flags': {'a': {'value': True, 'version': 1}, 'd': {'value': 'x', 'version': 3}}}],\n   [['a', True], ['c', 2], ['d', 'x']]),\n  ('payload pair sample 15',\n   [{'version': 1,\n     'flags': {'a': {'value': True, 'version': 0},\n               'c': {'value': True, 'version': 1},\n               'd': {'value': 2, 'version': 3}}},\n    {'version': 1,\n     'flags': {'d': {'value': 'x', 'version': 3},\n               'a': {'value': False, 'version': 2},\n               'b': {'value': True, 'version': 2}}}],\n   [['a', False], ['b', True], ['c', True], ['d', 2]]),\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   [])]]\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":"dd3b0e3e0875cde48af8ac7ca7883ccdf8e7964271457db794bcc120540eb59e","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 [('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  ('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 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 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 [('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 12',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 3},\n               'd': {'value': 'x', 'version': 0, 'deleted': True},\n               'a': {'value': False, 'version': 0}}},\n    {'version': 1,\n     'flags': {'b': {'value': False, 'version': 2},\n               'd': {'value': True, 'version': 0},\n               'a': {'value': True, 'version': 1, 'deleted': True}}}],\n   [['a', False], ['c', True]]),\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 5',\n   [{'version': 2, 'flags': {'b': {'value': 2, 'version': 3}}},\n    {'version': 2,\n     'flags': {'c': {'value': False, 'version': 1},\n               'b': {'value': True, 'version': 3},\n               'a': {'value': False, 'version': 1, 'deleted': True}}}],\n   [['b', 2], ['c', False]]),\n  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 40',\n   [{'version': 2,\n     'flags': {'d': {'value': 'x', 'version': 0},\n               'c': {'value': False, 'version': 1, 'deleted': True},\n               'b': {'value': 2, 'version': 2}}},\n    {'version': 3,\n     'flags': {'b': {'value': True, 'version': 1}, 'c': {'value': False, 'version': 0, 'deleted': True}}}],\n   [['b', 2], ['d', 'x']])],\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 10',\n   [{'version': 3, 'flags': {'d': {'value': True, 'version': 0}, 'c': {'value': 2, 'version': 3}}},\n    {'version': 3, 'flags': {'a': {'value': True, 'version': 1}, 'd': {'value': 'x', 'version': 3}}}],\n   [['a', True], ['c', 2], ['d', 'x']]),\n  ('payload pair sample 15',\n   [{'version': 1,\n     'flags': {'a': {'value': True, 'version': 0},\n               'c': {'value': True, 'version': 1},\n               'd': {'value': 2, 'version': 3}}},\n    {'version': 1,\n     'flags': {'d': {'value': 'x', 'version': 3},\n               'a': {'value': False, 'version': 2},\n               'b': {'value': True, 'version': 2}}}],\n   [['a', False], ['b', True], ['c', True], ['d', 2]]),\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   [])]]\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":"cb51501f2c4abcdcc76a142f08409bf35a7f539442e9c687a1cbb61855d09152","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 [('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  ('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 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 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 [('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 12',\n   [{'version': 3,\n     'flags': {'c': {'value': True, 'version': 3},\n               'd': {'value': 'x', 'version': 0, 'deleted': True},\n               'a': {'value': False, 'version': 0}}},\n    {'version': 1,\n     'flags': {'b': {'value': False, 'version': 2},\n               'd': {'value': True, 'version': 0},\n               'a': {'value': True, 'version': 1, 'deleted': True}}}],\n   [['a', False], ['c', True]]),\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 5',\n   [{'version': 2, 'flags': {'b': {'value': 2, 'version': 3}}},\n    {'version': 2,\n     'flags': {'c': {'value': False, 'version': 1},\n               'b': {'value': True, 'version': 3},\n               'a': {'value': False, 'version': 1, 'deleted': True}}}],\n   [['b', 2], ['c', False]]),\n  ('payload pair sample 16', [{'version': 2, 'flags': {}}, {'version': 3, 'flags': {}}], []),\n  ('payload pair sample 40',\n   [{'version': 2,\n     'flags': {'d': {'value': 'x', 'version': 0},\n               'c': {'value': False, 'version': 1, 'deleted': True},\n               'b': {'value': 2, 'version': 2}}},\n    {'version': 3,\n     'flags': {'b': {'value': True, 'version': 1}, 'c': {'value': False, 'version': 0, 'deleted': True}}}],\n   [['b', 2], ['d', 'x']])],\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 10',\n   [{'version': 3, 'flags': {'d': {'value': True, 'version': 0}, 'c': {'value': 2, 'version': 3}}},\n    {'version': 3, 'flags': {'a': {'value': True, 'version': 1}, 'd': {'value': 'x', 'version': 3}}}],\n   [['a', True], ['c', 2], ['d', 'x']]),\n  ('payload pair sample 15',\n   [{'version': 1,\n     'flags': {'a': {'value': True, 'version': 0},\n               'c': {'value': True, 'version': 1},\n               'd': {'value': 2, 'version': 3}}},\n    {'version': 1,\n     'flags': {'d': {'value': 'x', 'version': 3},\n               'a': {'value': False, 'version': 2},\n               'b': {'value': True, 'version': 2}}}],\n   [['a', False], ['b', True], ['c', True], ['d', 2]]),\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   [])]]\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-flag-version-tie","generated_at":"2026-09-29T14:48:55.020138+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":"Replace a flag only when the incoming flag version is strictly higher.","root_cause":"Replacement uses >= on flag versions.","sha256":"1ce9c44a473368baa712503fe94063cd3827f6290e795363c2efb4670eb9a588","title":"Bootstrapped flag payload merge: Equal flag versions overwrite local values · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.679,"exit_code":1,"observations":[{"actual":[["a","remote"]],"check":"equal flag version keeps the local value","expected":[["a","local"]],"passed":false},{"actual":[["a",true]],"check":"newer tombstone deletes the flag","expected":[],"passed":false},{"actual":[],"check":"older tombstone is ignored","expected":[["a",true]],"passed":false},{"actual":[["a",1]],"check":"equal payload version still merges","expected":[["a",2]],"passed":false},{"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\", \"remote\"]], \"expected\": [[\"a\", \"local\"]], \"passed\": false}, {\"check\": \"newer tombstone deletes the flag\", \"actual\": [[\"a\", true]], \"expected\": [], \"passed\": false}, {\"check\": \"older tombstone is ignored\", \"actual\": [], \"expected\": [[\"a\", true]], \"passed\": false}, {\"check\": \"equal payload version still merges\", \"actual\": [[\"a\", 1]], \"expected\": [[\"a\", 2]], \"passed\": false}, {\"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.217,"exit_code":1,"observations":[{"actual":[["a","remote"]],"check":"equal flag version keeps the local value","expected":[["a","local"]],"passed":false},{"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":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"equal flag version keeps the local value\", \"actual\": [[\"a\", \"remote\"]], \"expected\": [[\"a\", \"local\"]], \"passed\": false}, {\"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\": false}\n"},"fixed":{"elapsed_ms":40.529,"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"}