tinyhumansai/openhuman · error
'{field}' array must only contain strings
Error message
'{field}' array must only contain strings What it means
parse_string_list accepts a proxy list field ('no_proxy' etc.) as either a comma-separated string or an array; this fires when an array element is not a string (number, object, null). The {field} names which arguments key contained the bad element.
Source
Thrown at src/openhuman/tools/impl/system/proxy_config.rs:79
}
}
fn parse_string_list(raw: &Value, field: &str) -> anyhow::Result<Vec<String>> {
if let Some(raw_string) = raw.as_str() {
return Ok(raw_string
.split(',')
.map(str::trim)
.filter(|entry| !entry.is_empty())
.map(ToOwned::to_owned)
.collect());
}
if let Some(array) = raw.as_array() {
let mut out = Vec::new();
for item in array {
let value = item
.as_str()
.ok_or_else(|| anyhow::anyhow!("'{field}' array must only contain strings"))?;
let trimmed = value.trim();
if !trimmed.is_empty() {
out.push(trimmed.to_string());
}
}
return Ok(out);
}
anyhow::bail!("'{field}' must be a string or string[]")
}
fn parse_optional_string_update(args: &Value, field: &str) -> anyhow::Result<MaybeSet<String>> {
let Some(raw) = args.get(field) else {
return Ok(MaybeSet::Unset);
};
if raw.is_null() {
return Ok(MaybeSet::Null);View on GitHub (pinned to 7491200858)
Solutions
- Make every element of the array a string, e.g. ["provider.openai", "tool.http_request"]
- Or pass a single comma-separated string instead of an array
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/tools/impl/system/proxy_config.rs:79 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/17dcf553c80420eb.
Report an issue: GitHub.