tinyhumansai/openhuman · error
runtime python server unavailable: {message}
Error message
runtime python server unavailable: {message} What it means
ensure_started tried to start a cached server and start() failed; the failure message is recorded and the cache flips to Failed with a backoff window, so immediate retries are refused by design. The underlying cause is in the embedded message (spawn/handshake/provision failure).
Source
Thrown at src/openhuman/runtime/python_server/server.rs:319
);
existing.reset().await;
*guard = ServerCache::Empty;
}
}
}
match &*guard {
ServerCache::Ready(existing) => {
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) => {View on GitHub (pinned to 7491200858)
Solutions
- Fix the underlying start failure named in {message}
- Wait out the startup-failure backoff before retrying
- Re-provision the server venv if dependencies are the cause
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at src/openhuman/runtime/python_server/server.rs:319 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/8eadae9320b06bf3.
Report an issue: GitHub.