FA-28341 / HTTP redirects / Open access
Partition redirect cache entries by their declared request dimensions: scheme key · case 01
Partition redirect cache entries by their declared request dimensions: the scheme key branch emits an incorrect decision.
ROOT CAUSE
The scheme-key decision uses "'https'"; this violates the stipulated controller policy.
VERIFIED REPAIR
At this decision use 'scheme', preserving the other controller outputs.
Unsuccessful approach: The partial repair uses "'http'" and still fails an explicit boundary or control.
Case contract
Partition redirect cache entries by their declared request dimensions. The explicit fixture inputs and outputs define a bounded offline policy; request identity must accompany the decision.
Why this case matters
Models a redirect controller decision before following a target or exposing a redirect result.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from urllib.parse import urlsplit, unquote, quote
import posixpath
import re
N = 1
observations = []
def solve(request, scheme, host, port, method, path, query, partition, vary):
return {'request': request, 'decision': ['https', host.lower(), None if (scheme,port) in (("https",443),("http",80)) else port, method, path, query, '=' in query, partition, vary, len(vary)]}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('/requests/' + str(N) + '/0', 'https', 'H.TEST', 443, 'GET', '/A', 'x=1', 'tab1', ['en', 'gzip']), {'request': '/requests/' + str(N) + '/0', 'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2]})
check('fixture 2', solve('/requests/' + str(N) + '/1', 'https', 'h.test', 8443, 'HEAD', '/a', 'x=2', 'tab2', ['fr', 'br']), {'request': '/requests/' + str(N) + '/1', 'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2]})
check('fixture 3', solve('/requests/' + str(N) + '/2', 'http', 'h.test', 80, 'POST', '/a', 'q=', 'tab1', []), {'request': '/requests/' + str(N) + '/2', 'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0]})
check('fixture 4', solve('/requests/' + str(N) + '/3', 'http', 'Z.TEST', 8080, 'GET', '/b', 'b=2&a=1&b=2', 'tab3', ['en', 'br']), {'request': '/requests/' + str(N) + '/3', 'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2]})
check('fixture 5', solve('/requests/' + str(N) + '/4', 'https', 'h.test', 443, 'PUT', '/B', 'flag', 'tab2', ['']), {'request': '/requests/' + str(N) + '/4', 'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1]})
check('fixture 6', solve('/requests/' + str(N) + '/5', 'https', 'h.test', 443, 'GET', '/a', 'x=1', 'tab1', ['gzip', 'en', 'gzip']), {'request': '/requests/' + str(N) + '/5', 'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3]})
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | {'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2], 'request': '/requests/1/0'} | {'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2], 'request': '/requests/1/0'} | Passed |
| fixture 2 | {'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2], 'request': '/requests/1/1'} | {'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2], 'request': '/requests/1/1'} | Passed |
| fixture 3 | {'decision': ['https', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0], 'request': '/requests/1/2'} | {'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0], 'request': '/requests/1/2'} | Failed |
| fixture 4 | {'decision': ['https', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2], 'request': '/requests/1/3'} | {'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2], 'request': '/requests/1/3'} | Failed |
| fixture 5 | {'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1], 'request': '/requests/1/4'} | {'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1], 'request': '/requests/1/4'} | Passed |
| fixture 6 | {'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3], 'request': '/requests/1/5'} | {'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3], 'request': '/requests/1/5'} | Passed |
SHA-256 / d64972048c6582e5fdb1aad5449fbc0a2d2d3f5d937fbf482ac03fef433354a7
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from urllib.parse import urlsplit, unquote, quote
import posixpath
import re
N = 1
observations = []
def solve(request, scheme, host, port, method, path, query, partition, vary):
return {'request': request, 'decision': ['http', host.lower(), None if (scheme,port) in (("https",443),("http",80)) else port, method, path, query, '=' in query, partition, vary, len(vary)]}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('/requests/' + str(N) + '/0', 'https', 'H.TEST', 443, 'GET', '/A', 'x=1', 'tab1', ['en', 'gzip']), {'request': '/requests/' + str(N) + '/0', 'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2]})
check('fixture 2', solve('/requests/' + str(N) + '/1', 'https', 'h.test', 8443, 'HEAD', '/a', 'x=2', 'tab2', ['fr', 'br']), {'request': '/requests/' + str(N) + '/1', 'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2]})
check('fixture 3', solve('/requests/' + str(N) + '/2', 'http', 'h.test', 80, 'POST', '/a', 'q=', 'tab1', []), {'request': '/requests/' + str(N) + '/2', 'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0]})
check('fixture 4', solve('/requests/' + str(N) + '/3', 'http', 'Z.TEST', 8080, 'GET', '/b', 'b=2&a=1&b=2', 'tab3', ['en', 'br']), {'request': '/requests/' + str(N) + '/3', 'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2]})
check('fixture 5', solve('/requests/' + str(N) + '/4', 'https', 'h.test', 443, 'PUT', '/B', 'flag', 'tab2', ['']), {'request': '/requests/' + str(N) + '/4', 'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1]})
check('fixture 6', solve('/requests/' + str(N) + '/5', 'https', 'h.test', 443, 'GET', '/a', 'x=1', 'tab1', ['gzip', 'en', 'gzip']), {'request': '/requests/' + str(N) + '/5', 'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3]})
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | {'decision': ['http', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2], 'request': '/requests/1/0'} | {'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2], 'request': '/requests/1/0'} | Failed |
| fixture 2 | {'decision': ['http', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2], 'request': '/requests/1/1'} | {'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2], 'request': '/requests/1/1'} | Failed |
| fixture 3 | {'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0], 'request': '/requests/1/2'} | {'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0], 'request': '/requests/1/2'} | Passed |
| fixture 4 | {'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2], 'request': '/requests/1/3'} | {'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2], 'request': '/requests/1/3'} | Passed |
| fixture 5 | {'decision': ['http', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1], 'request': '/requests/1/4'} | {'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1], 'request': '/requests/1/4'} | Failed |
| fixture 6 | {'decision': ['http', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3], 'request': '/requests/1/5'} | {'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3], 'request': '/requests/1/5'} | Failed |
SHA-256 / f170ad9faed15933f428d98eddd0f8b9f4078fc5f49b5f08f3bf7d03f3397cc7
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
from urllib.parse import urlsplit, unquote, quote
import posixpath
import re
N = 1
observations = []
def solve(request, scheme, host, port, method, path, query, partition, vary):
return {'request': request, 'decision': [scheme, host.lower(), None if (scheme,port) in (("https",443),("http",80)) else port, method, path, query, '=' in query, partition, vary, len(vary)]}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('fixture 1', solve('/requests/' + str(N) + '/0', 'https', 'H.TEST', 443, 'GET', '/A', 'x=1', 'tab1', ['en', 'gzip']), {'request': '/requests/' + str(N) + '/0', 'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2]})
check('fixture 2', solve('/requests/' + str(N) + '/1', 'https', 'h.test', 8443, 'HEAD', '/a', 'x=2', 'tab2', ['fr', 'br']), {'request': '/requests/' + str(N) + '/1', 'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2]})
check('fixture 3', solve('/requests/' + str(N) + '/2', 'http', 'h.test', 80, 'POST', '/a', 'q=', 'tab1', []), {'request': '/requests/' + str(N) + '/2', 'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0]})
check('fixture 4', solve('/requests/' + str(N) + '/3', 'http', 'Z.TEST', 8080, 'GET', '/b', 'b=2&a=1&b=2', 'tab3', ['en', 'br']), {'request': '/requests/' + str(N) + '/3', 'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2]})
check('fixture 5', solve('/requests/' + str(N) + '/4', 'https', 'h.test', 443, 'PUT', '/B', 'flag', 'tab2', ['']), {'request': '/requests/' + str(N) + '/4', 'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1]})
check('fixture 6', solve('/requests/' + str(N) + '/5', 'https', 'h.test', 443, 'GET', '/a', 'x=1', 'tab1', ['gzip', 'en', 'gzip']), {'request': '/requests/' + str(N) + '/5', 'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3]})
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| fixture 1 | {'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2], 'request': '/requests/1/0'} | {'decision': ['https', 'h.test', None, 'GET', '/A', 'x=1', True, 'tab1', ['en', 'gzip'], 2], 'request': '/requests/1/0'} | Passed |
| fixture 2 | {'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2], 'request': '/requests/1/1'} | {'decision': ['https', 'h.test', 8443, 'HEAD', '/a', 'x=2', True, 'tab2', ['fr', 'br'], 2], 'request': '/requests/1/1'} | Passed |
| fixture 3 | {'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0], 'request': '/requests/1/2'} | {'decision': ['http', 'h.test', None, 'POST', '/a', 'q=', True, 'tab1', [], 0], 'request': '/requests/1/2'} | Passed |
| fixture 4 | {'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2], 'request': '/requests/1/3'} | {'decision': ['http', 'z.test', 8080, 'GET', '/b', 'b=2&a=1&b=2', True, 'tab3', ['en', 'br'], 2], 'request': '/requests/1/3'} | Passed |
| fixture 5 | {'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1], 'request': '/requests/1/4'} | {'decision': ['https', 'h.test', None, 'PUT', '/B', 'flag', False, 'tab2', [''], 1], 'request': '/requests/1/4'} | Passed |
| fixture 6 | {'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3], 'request': '/requests/1/5'} | {'decision': ['https', 'h.test', None, 'GET', '/a', 'x=1', True, 'tab1', ['gzip', 'en', 'gzip'], 3], 'request': '/requests/1/5'} | Passed |
SHA-256 / b89200d8af99df1cf47a4852978571c7346d8756a0c7452ea2091d61377064ac
Verification & scope
Stipulated offline redirect policy, not a complete HTTP, browser, URL, cache, or security implementation. Numbered variants vary request correlation identity. 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:41:33.150039+00:00.
Case digest / d464de3efb65d5afb8c6a19f665e21eca5854cc1dddbbce6c6387fafaf56c524