{"record":{"id":"a6a84379b6b9f2e1","repo":"tinyhumansai/openhuman","slug":"runtime-python-server-unavailable-after-previous-s","errorCode":null,"errorMessage":"runtime python server unavailable after previous startup failure: {message}","messagePattern":"runtime python server unavailable after previous startup failure: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/runtime/python_server/server.rs","lineNumber":327,"sourceCode":"            let existing = existing.clone();\n            if let Err(error) = existing.start().await {\n                let message = format!(\"{error:#}\");\n                log::warn!(\n                    \"[runtime_python_server] cached server failed to start; backing off: {message}\"\n                );\n                *guard = ServerCache::Failed {\n                    message: message.clone(),\n                    retry_after: Instant::now() + START_FAILURE_BACKOFF,\n                };\n                bail!(\"runtime python server unavailable: {message}\");\n            }\n            return Ok(existing);\n        }\n        ServerCache::Failed {\n            message,\n            retry_after,\n        } if Instant::now() < *retry_after => {\n            bail!(\"runtime python server unavailable after previous startup failure: {message}\");\n        }\n        ServerCache::Failed { .. } | ServerCache::Empty => {}\n    }\n\n    match start_new_server(config).await {\n        Ok(server) => {\n            *guard = ServerCache::Ready(server.clone());\n            Ok(server)\n        }\n        Err(error) => {\n            let message = format!(\"{error:#}\");\n            log::warn!(\n                \"[runtime_python_server] startup failed; caching fallback state for {:?}: {message}\",\n                START_FAILURE_BACKOFF\n            );\n            *guard = ServerCache::Failed {\n                message: message.clone(),\n                retry_after: Instant::now() + START_FAILURE_BACKOFF,","sourceCodeStart":309,"sourceCodeEnd":345,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/runtime/python_server/server.rs#L309-L345","documentation":"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.","triggerScenarios":"Thrown at src/openhuman/runtime/python_server/server.rs:327 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}