atuinsh/atuin · error
Rate limited; please wait before doing that again
Error message
Rate limited; please wait before doing that again
What it means
Sentinel guard in handle_resp_error: raised when the sync API responds with HTTP 429 TOO_MANY_REQUESTS, meaning the server-side rate limiter rejected a request from register, login, latest_version, page, me, or delete_store. This is client back-pressure, not a code defect — too many requests were issued in a short window.
Source
Thrown at crates/atuin-client/src/api_client.rs:242
return Ok(false);
}
Ok(true)
}
#[instrument(level = "trace", skip_all, err)]
async fn handle_resp_error(resp: Response) -> Result<Response> {
let status = resp.status();
let url = resp.url().to_string();
if status == StatusCode::SERVICE_UNAVAILABLE {
bail!(
"Service unavailable: check https://status.atuin.sh (or get in touch with your host)"
);
}
if status == StatusCode::TOO_MANY_REQUESTS {
bail!("Rate limited; please wait before doing that again");
}
if !status.is_success() {
let body = resp.text().await.unwrap_or_default();
if let Ok(error) = serde_json::from_str::<ErrorResponse>(&body) {
let reason = error.reason;
if status.is_client_error() {
bail!("Invalid request to the service at {url}, {status} - {reason}.");
}
bail!(
"There was an error with the atuin sync service at {url}, server error {status}: \
{reason}.\nIf the problem persists, contact the host"
);
}
View on GitHub (pinned to c0c717ab04)
Solutions
- Wait before retrying; honor the Retry-After header if the server supplies one
- Reduce request frequency or batch operations instead of issuing many small requests
- Check for retry loops in your setup that could hammer the API
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at crates/atuin-client/src/api_client.rs:242 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of atuinsh/atuin@c0c717ab04 (2026-09-12).
Data as JSON: /api/errors/6eb8677225a83ff6.
Report an issue: GitHub.