atuinsh/atuin · error

Unknown error

Error message

Unknown error

What it means

Final else-branch of the status match in Client::delete: the DELETE /account response was neither 200 (deleted) nor 403 (bad credentials), so the code has no specific mapping. The actual status code is discarded, making this a low-information sentinel for any unexpected response during account deletion.

Source

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

        let index = resp.json().await?;

        debug!("got remote index {index:?}");

        Ok(index)
    }

    #[instrument(level = "trace", skip_all, err)]
    pub async fn delete(&self) -> Result<()> {
        let url = self.sync_addr.append(["account"])?;

        let resp = self.client.delete(url).send().await?;

        if resp.status() == 403 {
            bail!("invalid login details");
        } else if resp.status() == 200 {
            Ok(())
        } else {
            bail!("Unknown error");
        }
    }

    #[instrument(level = "trace", skip_all, err)]
    pub async fn change_password(
        &self,
        current_password: String,
        new_password: String,
    ) -> Result<()> {
        let url = self.sync_addr.append_path("account/password")?;

        let resp = self
            .client
            .patch(url)
            .json(&ChangePasswordRequest {
                current_password,
                new_password,
            })

View on GitHub (pinned to c0c717ab04)

Solutions

  1. Retry the deletion; transient 5xx responses fall into this branch
  2. Check connectivity to the sync server and whether an intermediary returned an unexpected status
  3. Inspect server logs to learn the real status code
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/atuin-client/src/api_client.rs:639 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/904423c64c67bcba. Report an issue: GitHub.