Let a refusal keep the sentence it was written with

FixMediaService
Shipped
September 8, 2026 at 1:46 AM UTC
Author
Kamo
Commit
93c6c95

The chess code refuses with reasons meant to be read — "not your turn", "this game is not in play", "illegal move". None of them reached anybody. `server.error.include-message` defaults to `never` and this service does not override it, so Spring strips a ResponseStatusException's reason and the body is **************** The BFF relays `error`, so a member whose opponent had not moved yet read "Conflict". Verified against the deployed pod before writing this: /api/media/chess/games answers **************** — no `message` field at all. Scoped to ChessController with assignableTypes, not applied service-wide. Turning include-message on globally would surface every other endpoint's exception text, which is a disclosure decision for the whole service and not one chess should make on its behalf. The shape is {"error": …} because that is what relayMediaResponse already unwraps and what the chess client already reads — a fourth shape would need all three changed together.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing