atuinsh/atuin · error

Service unavailable: check https://status.atuin.sh (or get i

Error message

Service unavailable: check https://status.atuin.sh (or get in touch with your host)

What it means

Sentinel guard inside handle_resp_error: fires when any sync API response (from register, login, latest_version, page, me, delete_store) returns HTTP 503 SERVICE_UNAVAILABLE. It converts the bare status code into a user-facing pointer to the service status page; the sync server is reachable but reporting it cannot serve requests.

Source

Thrown at crates/atuin-client/src/api_client.rs:236

            "Atuin version mismatch! In order to successfully sync, the server needs to run a \
             newer version of Atuin"
        );
        println!("Client: {ATUIN_CARGO_VERSION}");
        println!("Server: {version}");

        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}.");
            }

View on GitHub (pinned to c0c717ab04)

Solutions

  1. Check https://status.atuin.sh for an outage and wait until the service recovers
  2. Retry the sync operation after a delay; 503 is typically transient
  3. If self-hosting, inspect the server's logs and process health — the host is responsible for the unavailable backend
  4. If the problem persists, contact the host or Atuin support
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at crates/atuin-client/src/api_client.rs:236 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of atuinsh/atuin@c0c717ab04 (2026-09-12). Data as JSON: /api/errors/62be0f755c5c482f. Report an issue: GitHub.