{"record":{"id":"24ed66603fc181f5","repo":"influxdata/influxdb","slug":"this-service-is-overloaded-please-try-again-later","errorCode":null,"errorMessage":"this service is overloaded, please try again later","messagePattern":"this service is overloaded, please try again later","errorType":"http","errorClass":"Error","httpStatus":null,"severity":"warning","filePath":"influxdb3_server/src/http.rs","lineNumber":244,"sourceCode":"\n    /// Decoding a gzip-compressed stream of data failed.\n    #[error(\"error decoding gzip stream: {0}\")]\n    InvalidGzip(std::io::Error),\n\n    #[error(\"invalid mime type ({0})\")]\n    InvalidMimeType(String),\n\n    /// DatabaseName validation error.\n    #[error(\"error validating database name: {0}\")]\n    InvalidDatabaseName(#[from] DatabaseNameError),\n\n    /// Failure to decode the provided line protocol.\n    #[error(\"failed to parse line protocol: {0}\")]\n    ParseLineProtocol(influxdb_line_protocol::Error),\n\n    /// The router is currently servicing the maximum permitted number of\n    /// simultaneous requests.\n    #[error(\"this service is overloaded, please try again later\")]\n    RequestLimit,\n\n    /// The request has no authentication, but authorization is configured.\n    #[error(\"authentication required\")]\n    Unauthenticated,\n\n    /// The provided authorization is not sufficient to perform the request.\n    #[error(\"access denied\")]\n    Forbidden,\n\n    /// The HTTP request method is not supported for this resource\n    #[error(\"unsupported method\")]\n    UnsupportedMethod,\n\n    /// Hyper serving error\n    #[error(\"error serving http: {0}\")]\n    ServingHttp(#[from] hyper::Error),\n","sourceCodeStart":226,"sourceCodeEnd":262,"githubUrl":"https://github.com/influxdata/influxdb/blob/06200ef96ba82c5f6727e5038a83af8e722c6875/influxdb3_server/src/http.rs#L226-L262","documentation":"This error is returned when the HTTP service is already servicing the maximum permitted number of simultaneous requests. The router deliberately rejects additional work with this message so clients can back off, rather than queuing unbounded work and exhausting memory. It is a transient overload condition, not a client bug.","triggerScenarios":"Sending requests while the server's connection/request limit (semaphore) is saturated, e.g. during bulk-load bursts, many concurrent writers, or a slow query storm holding request slots.","commonSituations":"Load tests or parallel ETL jobs with no client-side concurrency cap; production traffic spikes; a slow downstream (compaction, object store) causing requests to pile up.","solutions":["Retry the request after a delay using exponential backoff with jitter; this is designed as a retryable condition (typically HTTP 429/503).","Reduce client-side concurrency: cap in-flight requests or batch writes into fewer, larger requests.","Check server config for the request-limit setting and raise it if resources allow.","Look for slow queries or blocked writers holding request slots and tune those workloads."],"exampleFix":"// before\n// fire 500 write requests at once\nfor req in requests { tokio::spawn(send(req)); }\n// after\nlet sem = Arc::new(Semaphore::new(16)); // cap concurrency\nfor req in requests {\n    let permit = sem.clone().acquire_owned().await?;\n    tokio::spawn(async move { let _p = permit; send(req).await; });\n}\n// plus: retry on 429 with backoff","handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"// retry on 429/503 with exponential backoff + jitter\nmatch resp.status() {\n    s if s == 429 || s == 503 => {\n        tokio::time::sleep(backoff.next_delay()).await;\n        continue; // retry the request\n    }\n    _ => break,\n}","preventionTips":["Cap client-side concurrency with a semaphore or connection pool limit.","Batch many small writes into fewer larger requests.","Monitor server load and back off proactively under load.","Honor Retry-After headers when present."],"tags":["overload","rate-limit","http-api","backpressure"],"backgroundTag":"rate-limit-exceeded","analyzedSha":"06200ef96ba82c5f6727e5038a83af8e722c6875","analyzedAt":"2026-09-19T12:55:30.003Z","contentChangedAt":"2026-09-19T12:55:30.003Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}