← All anti-patterns
Architecture anti-pattern

Compatible because the generator reported no error

Published by ArchitectMentor

A team treats an additive schema change as safe without running supported consumers or checking contract behaviour.

Fictional educational scenario. It does not describe a particular organisation or incident.

Situation

A team adds an optional field to an API response. Its OpenAPI diff tool reports no breaking change, so the server is prepared for universal rollout. Nobody runs the oldest supported mobile app, which rejects unknown properties.

Where the anti-pattern appears

One tool result becomes complete evidence of compatibility. A schema check answers an important but narrower question. It does not exercise deserializer configuration, generated code, new enum values, data limits or the meaning a client assigned to the response.

Warning signs

  • “additive” automatically means “safe”;
  • no one owns the supported-client inventory;
  • contract tests run only against the newest SDK;
  • unknown-field behaviour lives in assumptions rather than the contract;
  • rollout targets every consumer because server rollback appears easy.

Consequences

A formally valid response can become unreadable to a running client. The failure appears on the consumer side and may be blamed on that team even though the producer triggered it. Server rollback helps only if the new field is identified quickly and its exposure is still controllable.

A better decision

  1. Separate source, wire and semantic compatibility. Each needs appropriate evidence.
  2. Maintain an inventory of supported consumers, libraries and deserialization modes.
  3. Test the oldest supported versions, including unknown fields and new enum values.
  4. Roll out progressively and observe failures by client version. Retain a way to stop exposing the new field.
  5. Record contract-evolution rules. If the previous promise cannot be preserved, negotiate a response profile or version the API.

Boundary

Automated specification checks remain valuable. The anti-pattern is not the tool; it is promoting a green result into proof that every real consumer works. A green badge is reassuring. Production is under no obligation to care.

Contract compatibility ends at a working consumer, not at a generator report.

Discuss this article

Share a constructive observation or an anonymised example. Comments are checked by AI before publication. Uncertain cases go to the moderator.

Discuss ideas, not people. Do not include confidential details or personal data. By submitting, you accept the data notice.