tinyhumansai/openhuman · error
generated tool `{name}` description must be non-empty
Error message
generated tool `{name}` description must be non-empty What it means
validate_definition rejects a generated tool whose description is empty after trimming. The description is what the model reads to decide when to call the tool; an empty one would produce an unusable catalogue entry, so admission fails during validation.
Source
Thrown at src/openhuman/tools/generated.rs:326
fn normalize_definition(definition: &mut GeneratedToolDefinition) {
definition.name = definition.name.trim().to_string();
definition.description = definition.description.trim().to_string();
definition.display_label = trim_option(definition.display_label.take());
definition.adapter_id = definition.adapter_id.trim().to_string();
definition.provider_id = normalize_optional_provider_id(definition.provider_id.take());
definition.capability_id = trim_option(definition.capability_id.take());
definition.source_digest = trim_option(definition.source_digest.take());
definition.policy_surface = trim_option(definition.policy_surface.take());
}
fn validate_definition(definition: &GeneratedToolDefinition) -> anyhow::Result<()> {
let name = definition.name.trim();
if name.is_empty() {
anyhow::bail!("generated tool name must be non-empty");
}
if definition.description.trim().is_empty() {
anyhow::bail!("generated tool `{name}` description must be non-empty");
}
if definition.adapter_id.trim().is_empty() {
anyhow::bail!("generated tool `{name}` adapter_id must be non-empty");
}
crate::openhuman::tools::schema::SchemaCleanr::validate(&definition.parameters_schema)
.map_err(|err| anyhow::anyhow!("generated tool `{name}` has invalid schema: {err}"))?;
Ok(())
}
fn validate_admission(
definition: &GeneratedToolDefinition,
config: &GeneratedToolAdmissionConfig,
normalized_disabled_providers: &BTreeSet<String>,
normalized_trusted_providers: &BTreeSet<String>,
seen: &mut BTreeSet<String>,
) -> Result<(), String> {
validate_definition(definition).map_err(|err| err.to_string())?;
if !is_safe_generated_tool_name(&definition.name) {View on GitHub (pinned to 7491200858)
Solutions
- Provide a meaningful description in the GeneratedToolDefinition.
- Check the upstream capability definition for a missing or blank description field.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/tools/generated.rs:326 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/8ed5904fc6ae7e3e.
Report an issue: GitHub.