{"record":{"id":"21e45cdb731f09f0","repo":"sigoden/aichat","slug":"no-session-role","errorCode":null,"errorMessage":"No session role","messagePattern":"No session role","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/config/mod.rs","lineNumber":898,"sourceCode":"        if self.agent.is_some() {\n            bail!(\"Cannot perform this operation because you are using a agent\")\n        }\n        if let Some(session) = self.session.as_mut() {\n            session.guard_empty()?;\n            session.set_role(role);\n        } else {\n            self.role = Some(role);\n        }\n        Ok(())\n    }\n\n    pub fn role_info(&self) -> Result<String> {\n        if let Some(session) = &self.session {\n            if session.role_name().is_some() {\n                let role = session.to_role();\n                Ok(role.export())\n            } else {\n                bail!(\"No session role\")\n            }\n        } else if let Some(role) = &self.role {\n            Ok(role.export())\n        } else {\n            bail!(\"No role\")\n        }\n    }\n\n    pub fn exit_role(&mut self) -> Result<()> {\n        if let Some(session) = self.session.as_mut() {\n            session.guard_empty()?;\n            session.clear_role();\n        } else if self.role.is_some() {\n            self.role = None;\n        }\n        Ok(())\n    }\n","sourceCodeStart":880,"sourceCodeEnd":916,"githubUrl":"https://github.com/sigoden/aichat/blob/82976d349ad97ac9aae0655ad631dace5e2a6385/src/config/mod.rs#L880-L916","documentation":"Raised by role_info() when a session is active but the session has no role name set (session.role_name() returns None). The export of a session-derived role is impossible without an assigned role, so the function bails instead of exporting an empty configuration.","triggerScenarios":"Thrown at src/config/mod.rs:898 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set a role on the session before requesting role information","Use the default/global role info instead by exiting the session","Initialize the session with an explicit role"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"82976d349ad97ac9aae0655ad631dace5e2a6385","analyzedAt":"2026-09-09T18:33:06.139Z","contentChangedAt":"2026-09-09T18:33:06.139Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}