not_found (404)

No resource matched the request.

Cause

Three cases share this code.

The first two are not distinguished. Telling a caller that an id existed but has gone is telling them about somebody else's history.

A path parameter that cannot be a valid id answers here rather than 422. An id that could never exist names a resource that cannot exist.

The message

The wording depends on which of the cases above it was.

No scan with id 01a0af18-cd8d-7a61-9f2d-4c7b8e105da3 exists or it has expired.
No route for GET /v1/scan/1.

The fix

Check the id and the path. A result is readable only while its retention window lasts. That window is the retain_hours the creating request asked for, or the account's own setting when it asked for none.

event_id

event_id is always null on this code. It is a refusal the caller is meant to handle, so nothing is recorded as a failure to look at. The service answers and writes one log line.

The whole catalogue, grouped by what a caller does with it, is on errors.

The response

{
  "error": {
    "code": "not_found",
    "message": "No scan with id 01a0af18-cd8d-7a61-9f2d-4c7b8e105da3 exists or it has expired.",
    "docs_url": "https://doc.cheap/docs/errors/not_found",
    "request_id": "req_9e6b1f7c-2d4a-4b83-9c51-7f0ad3e8b642",
    "event_id": null
  }
}