{
"status": 400,
"title": "Timestamp End value not supplied",
"detail": "The timestamp_end parameter was included in the request but no value was supplied.",
"field": "timestamp_end",
"resource_uri": "/zone-port-insights/v1/zone-and-port-traffic/ID/266ea41d-adf5-480b-af50-15b940c2b846",
"request_id": "66ea41d0-adf5-480b-af50-15b940c2b846"
}| Field | Always present | What it gives you |
|---|---|---|
status | Yes | The HTTP status, repeated in the body so a logged payload is self-describing |
title | Yes | Short summary of what went wrong |
detail | Yes | The specific problem, usually enough to fix it without contacting anyone |
request_id | Yes | Quote this to support. It identifies your exact request |
field | When relevant | The request parameter at fault |
resource_uri | When relevant | The path you called |
documentation | Occasionally | A link to the relevant page |
detail and field together resolve most 400s. Read those two first.status, not on titledetail to whoever can act on itdetail for a person to read. Surface it instead of substituting a generic message of your own.request_id and X-Correlation-Id on every failureX-Correlation-Id header. With that and the request_id, support can find your request without asking you to reproduce it.| Shape | Example | Where |
|---|---|---|
String under error | {"error": "Request is not valid JSON."} | Screening, invalid filters and ordering |
Object under error | {"error": {"additional_entities": "Field cannot be bigger than 10 entities."}} | Registration validation |
| Field-keyed object | {"transaction": {"__all__": "Please add all required fields and values."}} | Transaction updates |
| Coded conflict | {"error_code": "DUPLICATE_FOUND", "error_info": {…}, "error_message": "Duplicate entry found"} | Duplicate transactions |
| Plain text | GET/POST/PUT/PATCH/DELETE not allowed | Unsupported methods |
| Empty body | no content at all | Transaction not found, report not ready |
request_id from the error body and the X-Correlation-Id header from the response. With both, support can look the request up instead of asking you to reproduce it.