{"record":{"id":"11d164eff9291873","repo":"tinyhumansai/openhuman","slug":"skill-entry-id-not-found-in-catalog-run-skill","errorCode":null,"errorMessage":"skill '{entry_id}' not found in catalog. Run skill_registry_browse first to refresh.","messagePattern":"skill '(.+?)' not found in catalog\\. Run skill_registry_browse first to refresh\\.","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/skills/catalog/tools.rs","lineNumber":193,"sourceCode":"    /// matching every other external-effect tool.\n    fn external_effect(&self) -> bool {\n        true\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let entry_id = args\n            .get(\"entry_id\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"missing required argument `entry_id`\"))?;\n\n        tracing::debug!(entry_id = %entry_id, \"[tool][skill_registry] install\");\n\n        let catalog = ops::browse_catalog(false)\n            .await\n            .map_err(|e| anyhow::anyhow!(\"failed to load catalog: {e}\"))?;\n\n        let entry = catalog.iter().find(|e| e.id == entry_id).ok_or_else(|| {\n            anyhow::anyhow!(\n                \"skill '{entry_id}' not found in catalog. \\\n                     Run skill_registry_browse first to refresh.\"\n            )\n        })?;\n\n        match ops::install_from_catalog(&self.workspace_dir, entry).await {\n            Ok(outcome) => Ok(ToolResult::success(serde_json::to_string(&json!({\n                \"url\": outcome.url,\n                \"stdout\": outcome.stdout,\n                \"stderr\": outcome.stderr,\n                \"new_skills\": outcome.new_skills,\n            }))?)),\n            Err(e) => Ok(ToolResult::error(format!(\n                \"Failed to install skill '{entry_id}': {e}\"\n            ))),\n        }\n    }\n}","sourceCodeStart":175,"sourceCodeEnd":211,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/skills/catalog/tools.rs#L175-L211","documentation":"The catalog loaded successfully but contains no entry with the requested entry_id. Unlike a load failure, this is a lookup miss: the id is stale (catalog changed since it was copied), misspelled, or from a different catalog state. The message itself suggests refreshing via skill_registry_browse to re-sync ids.","triggerScenarios":"Thrown at src/openhuman/skills/catalog/tools.rs:193 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run skill_registry_browse first and copy a current entry_id","Check the id spelling against the fresh catalog","Retry the install after refreshing the catalog"],"exampleFix":null,"handlingStrategy":"fallback","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-14T00:17:10.932Z"}