An OperationOutcome carries two very different fields that both look diagnostic: severity and diagnostics. They serve different purposes, and consulting them in the wrong order is a common time-waster. Severity is a machine-readable enum...
Reading an OperationOutcome for the First Time
The first OperationOutcome a developer encounters usually arrives at the worst moment. A validation failed, a write got rejected, a search returned something strange, and the response body is a JSON structure the caller has not read...