{"record":{"id":"75f502ecaa27ad04","repo":"atuinsh/atuin","slug":"hub-password-change-failed-with-status-status","errorCode":null,"errorMessage":"Hub password change failed with status {status}","messagePattern":"Hub password change failed with status (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/atuin-client/src/auth.rs","lineNumber":420,"sourceCode":"                Some(\"2fa_required\") => return Ok(MutateResponse::TwoFactorRequired),\n                Some(\"invalid_2fa_code\") => {\n                    bail!(\"invalid two-factor code\");\n                }\n                _ => {\n                    bail!(\"{}\", err.reason);\n                }\n            }\n        }\n\n        match status {\n            StatusCode::UNAUTHORIZED => {\n                bail!(\"current password is incorrect\");\n            }\n            StatusCode::FORBIDDEN => {\n                bail!(\"invalid login details\");\n            }\n            _ => {\n                bail!(\"Hub password change failed with status {status}\");\n            }\n        }\n    }\n\n    async fn delete_account(\n        &self,\n        password: &str,\n        totp_code: Option<&str>,\n    ) -> Result<MutateResponse> {\n        let hub_token = self.hub_token.as_deref().ok_or_else(|| {\n            eyre::eyre!(\"Not logged in to Atuin Hub. Please run 'atuin login' to authenticate.\")\n        })?;\n\n        if !hub_token.starts_with(\"atapi_\") {\n            bail!(\n                \"Your Hub session token is invalid. Please run 'atuin login' to re-authenticate \\\n                 with Atuin Hub.\"\n            );","sourceCodeStart":402,"sourceCodeEnd":438,"githubUrl":"https://github.com/atuinsh/atuin/blob/c0c717ab04c881764bcad4b3d169a507e2432643/crates/atuin-client/src/auth.rs#L402-L438","documentation":"Final fallback in the auth-module change_password: the Hub response was a non-success status with no parseable structured error and not 401/403, so only the raw status is reported. This catches gateway/proxy failures and unexpected server states during the password-change request.","triggerScenarios":"Thrown at crates/atuin-client/src/auth.rs:420 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry after a delay; 5xx statuses here are usually transient","Check https://status.atuin.sh for incidents","Use the interpolated {status} to diagnose proxy or server-side failures"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c0c717ab04c881764bcad4b3d169a507e2432643","analyzedAt":"2026-09-12T07:40:01.341Z","contentChangedAt":"2026-09-12T07:40:01.341Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}