{"record":{"id":"b5ceee4004ffbfe4","repo":"sigoden/aichat","slug":"cannot-perform-this-operation-because-you-are-usin","errorCode":null,"errorMessage":"Cannot perform this operation because you are using a agent","messagePattern":"Cannot perform this operation because you are using a agent","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/config/mod.rs","lineNumber":881,"sourceCode":"            }\n        }\n        Ok(())\n    }\n\n    pub fn use_prompt(&mut self, prompt: &str) -> Result<()> {\n        let mut role = Role::new(TEMP_ROLE_NAME, prompt);\n        role.set_model(self.current_model().clone());\n        self.use_role_obj(role)\n    }\n\n    pub fn use_role(&mut self, name: &str) -> Result<()> {\n        let role = self.retrieve_role(name)?;\n        self.use_role_obj(role)\n    }\n\n    pub fn use_role_obj(&mut self, role: Role) -> Result<()> {\n        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            }","sourceCodeStart":863,"sourceCodeEnd":899,"githubUrl":"https://github.com/sigoden/aichat/blob/82976d349ad97ac9aae0655ad631dace5e2a6385/src/config/mod.rs#L863-L899","documentation":"Guard in use_role_obj: role/session switching is incompatible with an active agent, so when self.agent is Some the operation is refused before mutating self.role or the session. The input at fault is any role activation attempt while an agent session is in use.","triggerScenarios":"Thrown at src/config/mod.rs:881 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Exit the current agent before switching roles (e.g. with the agent exit command)","Start a fresh session without an agent and then use the role","Keep the agent's own prompt/model configuration instead of overriding it with a role"],"exampleFix":null,"handlingStrategy":"validation","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"}