tinyhumansai/openhuman · error · anyhow::Error

describe_workflow: workflow `{skill_id}` not found

Error message

describe_workflow: workflow `{skill_id}` not found

What it means

`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.

Source

Thrown at src/openhuman/skills/tools.rs:236

        })
    }

    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
        log::debug!("[tool][workflows] describe invoked");
        let skill_id = read_workflow_id(&args)?;
        let profile_local = profile_local_skill_ids(self.profile_skills_root.as_deref());
        if !skill_allowed_including_profile(&self.skill_allowlist, &profile_local, &skill_id) {
            log::debug!("[profiles] describe_workflow blocked by profile allowlist: {skill_id}");
            return Ok(ToolResult::error(format!(
                "describe_workflow: workflow `{skill_id}` is not available to the active agent profile"
            )));
        }
        let def = get_workflow_with_profile(
            &self.workspace_dir,
            &skill_id,
            self.profile_skills_root.as_deref(),
        )
        .ok_or_else(|| anyhow::anyhow!("describe_workflow: workflow `{skill_id}` not found"))?;
        Ok(ToolResult::success(serde_json::to_string(&json!({
            "definition": def.definition,
            "inputs": def.inputs,
            "github_gated": def.github.is_some(),
        }))?))
    }

    fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {
        true
    }
}

/// Read a bundled resource file from a skill.
pub struct WorkflowReadResourceTool {
    workspace_dir: PathBuf,
    skill_allowlist: SkillAllowlist,
    /// Active profile's private skills root — resolves + implicitly allows the
    /// owner's profile-local skills. `None` = byte-identical to today.

View on GitHub (pinned to 7491200858)

Solutions

  1. List available workflows and copy a valid id
  2. Check the workflow wasn't uninstalled or renamed
  3. If profile-scoped, verify the active agent profile exposes it
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/openhuman/skills/tools.rs:236 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17). Data as JSON: /api/errors/6fd922959bcae45e. Report an issue: GitHub.