tinyhumansai/openhuman · error
{channel_count} channels, {stale} stale
Error message
{channel_count} channels, {stale} stale What it means
Doctor channel-health summary: at least one channel component is tracked but one or more failed the freshness test — either their last ok-status heartbeat is older than CHANNEL_STALE_SECONDS or reported ok=false. The counts say how many channels are tracked and how many are stale; each stale channel also emitted its own per-channel error line with its ok flag and age.
Source
Thrown at src/openhuman/platform/doctor/core.rs:700
cat,
format!("{name} fresh ({age}s ago)"),
));
} else {
stale += 1;
items.push(DiagnosticItem::error(
cat,
format!("{name} stale (ok={status_ok}, age={age}s)"),
));
}
}
if channel_count == 0 {
items.push(DiagnosticItem::warn(
cat,
"no channel components tracked yet",
));
} else if stale > 0 {
items.push(DiagnosticItem::warn(
cat,
format!("{channel_count} channels, {stale} stale"),
));
}
}
}
// ── Environment checks ───────────────────────────────────────────
fn check_environment(items: &mut Vec<DiagnosticItem>) {
let cat = "environment";
// git
check_command_available("git", &["--version"], cat, items);
// Shell
let shell = std::env::var("SHELL").unwrap_or_default();
if shell.is_empty() {View on GitHub (pinned to 7491200858)
Solutions
- Inspect the per-channel error items to see which channel is stale and how old its heartbeat is
- Check that provider's credentials/network (bot token revoked, daemon down, network blocked)
- Restart the core so channel workers reconnect and republish fresh heartbeats
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/platform/doctor/core.rs:700 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/4b74fc39a1ffb303.
Report an issue: GitHub.