{"record":{"id":"fc33d52317f61c48","repo":"tinyhumansai/openhuman","slug":"capability-registry-validation-failed-error-di","errorCode":null,"errorMessage":"Capability registry validation failed ({} error diagnostic(s)): {}","messagePattern":"Capability registry validation failed \\((.+?) error diagnostic\\(s\\)\\): (.+?)","errorType":"exception","errorClass":"AgentError::RegistryValidationFailed","httpStatus":null,"severity":"error","filePath":"src/openhuman/agent/tinyagents/mod.rs","lineNumber":633,"sourceCode":"                name = %diag.name,\n                \"[registry] non-fatal diagnostic: {}\",\n                diag.message\n            );\n        }\n        if !errors.is_empty() {\n            let messages: Vec<String> = errors\n                .iter()\n                .map(|d| format!(\"[{}] {}: {}\", d.kind.as_str(), d.name, d.message))\n                .collect();\n            for msg in &messages {\n                tracing::error!(\"[registry] error-severity diagnostic aborting turn: {msg}\");\n            }\n            tracing::error!(\n                error_count = messages.len(),\n                warning_count = warnings.len(),\n                \"[registry] aborting turn before model dispatch: capability registry validation failed\"\n            );\n            return Err(anyhow::Error::new(\n                crate::openhuman::agent::error::AgentError::RegistryValidationFailed {\n                    diagnostics: messages,\n                },\n            ));\n        }\n        tracing::debug!(\n            warning_count = warnings.len(),\n            \"[registry] registry diagnostics present (warnings only); proceeding with turn\"\n        );\n    }\n\n    let mut config = RunConfig::new(\"agent_turn\")\n        .with_max_model_calls(max_iterations)\n        .with_max_tool_calls(max_iterations.saturating_mul(8).max(8))\n        .with_max_depth(MAX_SPAWN_DEPTH)\n        .with_tag(\"openhuman\")\n        .with_tag(if subagent_scope.is_some() {\n            \"scope:subagent\"","sourceCodeStart":615,"sourceCodeEnd":651,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/agent/tinyagents/mod.rs#L615-L651","documentation":"Raised at the end of capability-registry validation when at least one diagnostic had error severity (as opposed to warnings, which are only logged non-fatally). Each error diagnostic is a malformed capability declaration — wrong kind, name, or message — collected during registry build; the turn is aborted because an invalid capability registry cannot be trusted to gate what the model is allowed to do. The message counts the diagnostics and lists them as '[kind] name: message' lines.","triggerScenarios":"Thrown at src/openhuman/agent/tinyagents/mod.rs:633 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Read the enumerated per-diagnostic messages logged just before this error to identify which capability declarations are malformed","Fix or remove the offending capability entries in the registry source/config that produced them","Re-run and confirm validation completes with only non-fatal warnings"],"exampleFix":null,"handlingStrategy":"validation","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"}