tinyhumansai/openhuman · error
runtime python server unavailable after previous startup fai
Error message
runtime python server unavailable after previous startup failure: {message} What it means
ensure_started found the cache in the Failed state and the backoff window has not elapsed — this call is refused without attempting a start. The {message} is the previous failure's text, carried forward.
Source
Thrown at src/openhuman/runtime/python_server/server.rs:327
let existing = existing.clone();
if let Err(error) = existing.start().await {
let message = format!("{error:#}");
log::warn!(
"[runtime_python_server] cached server failed to start; backing off: {message}"
);
*guard = ServerCache::Failed {
message: message.clone(),
retry_after: Instant::now() + START_FAILURE_BACKOFF,
};
bail!("runtime python server unavailable: {message}");
}
return Ok(existing);
}
ServerCache::Failed {
message,
retry_after,
} if Instant::now() < *retry_after => {
bail!("runtime python server unavailable after previous startup failure: {message}");
}
ServerCache::Failed { .. } | ServerCache::Empty => {}
}
match start_new_server(config).await {
Ok(server) => {
*guard = ServerCache::Ready(server.clone());
Ok(server)
}
Err(error) => {
let message = format!("{error:#}");
log::warn!(
"[runtime_python_server] startup failed; caching fallback state for {:?}: {message}",
START_FAILURE_BACKOFF
);
*guard = ServerCache::Failed {
message: message.clone(),
retry_after: Instant::now() + START_FAILURE_BACKOFF,View on GitHub (pinned to 7491200858)
Solutions
- Wait for the START_FAILURE_BACKOFF window to pass, after which a real start is retried
- Address the root cause in {message} so the next attempt succeeds
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/runtime/python_server/server.rs:327 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/a6a84379b6b9f2e1.
Report an issue: GitHub.