{"record":{"id":"cc6f36fc39c08c15","repo":"tinyhumansai/openhuman","slug":"learning-enrich-profile-e","errorCode":null,"errorMessage":"learning_enrich_profile: {e}","messagePattern":"learning_enrich_profile: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/agent/learning/tools.rs","lineNumber":602,"sourceCode":"    }\n\n    fn permission_level(&self) -> PermissionLevel {\n        PermissionLevel::Execute\n    }\n\n    fn external_effect(&self) -> bool {\n        true\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        log::debug!(\"[tool][learning] enrich_profile invoked\");\n        let preset = args\n            .get(\"profile_url\")\n            .and_then(serde_json::Value::as_str)\n            .map(str::to_string);\n        let config = config_rpc::load_config_with_timeout()\n            .await\n            .map_err(|e| anyhow::anyhow!(\"learning_enrich_profile: {e}\"))?;\n        let result =\n            crate::openhuman::agent::learning::linkedin_enrichment::run_linkedin_enrichment(\n                &config, preset,\n            )\n            .await\n            .map_err(|e| anyhow::anyhow!(\"learning_enrich_profile: {e:#}\"))?;\n        Ok(ToolResult::success(serde_json::to_string(&json!({\n            \"profile_url\": result.profile_url,\n            \"profile_data\": result.profile_data,\n            \"stages\": result.stages,\n            \"log\": result.log,\n        }))?))\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;","sourceCodeStart":584,"sourceCodeEnd":620,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/agent/learning/tools.rs#L584-L620","documentation":"Wraps a failure to load the TOML config (config_rpc::load_config_with_timeout) inside the learning_enrich_profile agent tool's execute. The tool cannot proceed without config (workspace/backend resolution), so the config loader's error is re-wrapped with this tool-name prefix to identify the failing agent tool in transcripts and logs. The underlying fault is whatever made config loading time out or fail — a locked/corrupt config file or slow disk.","triggerScenarios":"Thrown at src/openhuman/agent/learning/tools.rs:602 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the tool call — load_config_with_timeout can fail under transient lock contention","Check that the workspace config.toml is readable and valid TOML","If it persists, inspect the inner {e} message for the specific loader failure (timeout vs parse)"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}