Errors and limits
Handle failed requests without losing your last valid snapshot.
Failed reads return application/problem+json; charset=utf-8. The response’s HTTP status is also in the body. External read errors have no machine code field; use the HTTP status, and treat detail as an explanation.
{
"type": "about:blank",
"title": "Not Found",
"status": 404,
"detail": "The requested fixture feed does not exist.",
"instance": "/v1/fixtures/unknown/feeds/pulse"
}| Status | Meaning | Client action |
|---|---|---|
400 Bad Request | Malformed, repeated or unsupported replay parameter. | Correct the query. Portland does not support replay. |
404 Not Found | Unknown path, sample, asset or feed, or a live game with no published item yet. | Check the path. A live feed may not have its first item yet. Do not clear your last valid snapshot. |
405 Method Not Allowed | Unsupported method on the external read surface. | Use GET, HEAD or OPTIONS. The Allow header names these methods. |
500 Internal Server Error | Unexpected failure while completing the request. | Retain state and retry with bounded backoff. Contact Storyteller if it persists. |
HEAD errors have the same status and headers without a problem body. Error responses use Cache-Control: no-store.
Edge errors
An edge security check can return 403 before the request reaches the Worker. Use a descriptive User-Agent for your server client; the Python example supplies one. Contact Storyteller if access is denied. An edge response may have different headers or an error format from the Worker responses above.
Feed bounds
A feed is bounded at publication: up to 1,000 published item identities and 49 published revisions per item, with separate capacity reserved for withdrawals. These are publishing bounds, not read pagination. A read does not return a feed_limit error; it reads the accepted snapshot. Contact Storyteller if you expect more content than appears. There is no application read-rate-limit response or specified request quota in the current Worker.