{"record":{"id":"6fd922959bcae45e","repo":"tinyhumansai/openhuman","slug":"describe-workflow-workflow-skill-id-not-found","errorCode":null,"errorMessage":"describe_workflow: workflow `{skill_id}` not found","messagePattern":"describe_workflow: workflow `(.+?)` not found","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/skills/tools.rs","lineNumber":236,"sourceCode":"        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        log::debug!(\"[tool][workflows] describe invoked\");\n        let skill_id = read_workflow_id(&args)?;\n        let profile_local = profile_local_skill_ids(self.profile_skills_root.as_deref());\n        if !skill_allowed_including_profile(&self.skill_allowlist, &profile_local, &skill_id) {\n            log::debug!(\"[profiles] describe_workflow blocked by profile allowlist: {skill_id}\");\n            return Ok(ToolResult::error(format!(\n                \"describe_workflow: workflow `{skill_id}` is not available to the active agent profile\"\n            )));\n        }\n        let def = get_workflow_with_profile(\n            &self.workspace_dir,\n            &skill_id,\n            self.profile_skills_root.as_deref(),\n        )\n        .ok_or_else(|| anyhow::anyhow!(\"describe_workflow: workflow `{skill_id}` not found\"))?;\n        Ok(ToolResult::success(serde_json::to_string(&json!({\n            \"definition\": def.definition,\n            \"inputs\": def.inputs,\n            \"github_gated\": def.github.is_some(),\n        }))?))\n    }\n\n    fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {\n        true\n    }\n}\n\n/// Read a bundled resource file from a skill.\npub struct WorkflowReadResourceTool {\n    workspace_dir: PathBuf,\n    skill_allowlist: SkillAllowlist,\n    /// Active profile's private skills root — resolves + implicitly allows the\n    /// owner's profile-local skills. `None` = byte-identical to today.","sourceCodeStart":218,"sourceCodeEnd":254,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/skills/tools.rs#L218-L254","documentation":"`describe_workflow` resolved the workflow id but no workflow with that id exists in the registry (profile-local ids were already checked). This is a not-found result surfaced as an error: the id is unknown, from another profile, or the workflow was uninstalled — distinct from the allowlist denial which has its own message.","triggerScenarios":"Thrown at src/openhuman/skills/tools.rs:236 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["List available workflows and copy a valid id","Check the workflow wasn't uninstalled or renamed","If profile-scoped, verify the active agent profile exposes it"],"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-14T05:17:10.506Z"}