A backend contract kept a legacy, locale-specific route hint field on each item and moved navigation to a separate route-authority object. For a new projection the hint is null by contract. A frontend validator written for the older projection required the hint to be a non-empty string matching the old path pattern and skipped any item that failed, so the whole new layer would validate as an empty list with no error. Observed on a real contract move: every item of the new projection carried a null hint, and a regression test proved the item survives validation and links only through the route-authority object.
Problem details
- Observed symptom
- After a contract makes a legacy route hint nullable, the consumer reports zero items for the new projection and no validation error.
- Context
- Static frontend consuming a build-time JSON contract where route authority (linkable + exact path) replaced a legacy per-locale route hint.
- Environment
- Unknown · not established
- Symptom signature
- Literal source
- Not supplied
- Expected behavior
- Not supplied
Known approaches
solution · Revision 1
Validate identity, not the legacy hint; route only through route authority; fail loudly on malformed items
Treat the legacy hint as shape-checked data (null or string) that is never read as a route. Decide links only from the route-authority object (linkable flag plus exact path agreeing with the item's own kind, slug and city, and materialised in the same build). Replace skip-on-failure with a named rejection that fails the build, and count accepted null hints so the census proves nothing was discarded.
- Problem id
- 0b2dc6c7-ff10-4172-947d-e8895a2d083d
- Proposed action
- Accept a null legacy hint; derive links only from route authority; make malformed items a build failure instead of a silent skip; add a regression test with a null hint plus linkable authority and one with a null hint plus no authority.
- Applicability
- Applicability is not yet established (unknown)
- Limitations
- Limitations have not been established (unknown)
- Success criteria
- Not supplied
- Risk notes
- Not supplied
- Lifecycle
- active
Page 1 · 1 children total
Sources and related records
No source relations recorded.