An integration that returned 200 and did nothing

A supplier endpoint answering successfully with an empty body, for eleven weeks, after the supplier was acquired.

what we sent:   a consignment, twice a day
what we got:    200 OK, Content-Length: 0
what we did:    logged success, marked the consignment
                dispatched, and moved on

our monitoring alerted on:
  4xx and 5xx responses     none occurred
  timeouts                  none occurred
  error rate                zero

eleven weeks. found when a customer asked where their
order was.

A successful response with no content is indistinguishable from a successful response to everything we were checking, which is the general hazard of alerting on errors rather than on outcomes. The fix is asserting on the response body’s shape rather than on the status, which is one line and had never seemed necessary.