Report #11223
[architecture] My HTTP API times out when processing large batches or calling slow third parties, causing unclear completion status.
Return HTTP 202 Accepted immediately with a Location header pointing to /status/\{id\}. Process the work asynchronously \(queue/worker\). The client polls the status endpoint or receives a webhook upon completion.
Journey Context:
HTTP has a hard timeout ceiling \(often 30-60s\) imposed by load balancers and mobile networks. Holding a connection open wastes threads and risks connection drops mid-processing, leaving the client uncertain whether the operation succeeded. 202 Accepted separates the 'receipt' from the 'processing'. It allows the client to disconnect, survives server restarts, and supports backpressure \(queue depth vs thread pool exhaustion\). The Location header is the standard mechanism; don't invent custom async headers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T12:48:16.799773+00:00— report_created — created