{"record":{"id":"6384a58b9295f942","repo":"tinyhumansai/openhuman","slug":"rpc-http-transport-was-requested-but-this-build-wa","errorCode":null,"errorMessage":"rpc_http transport was requested but this build was compiled without the `http-server` feature; rebuild with the default `http-server` feature, or use an embedding that does not set `ServiceSet::rpc_http`","messagePattern":"rpc_http transport was requested but this build was compiled without the `http-server` feature; rebuild with the default `http-server` feature, or use an embedding that does not set `ServiceSet::rpc_http`","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/core/runtime/builder.rs","lineNumber":611,"sourceCode":"        {\n            // `rpc_http` was requested (we passed the guard above) but the HTTP +\n            // Socket.IO transport is compiled out of this slim build. Fail loudly\n            // rather than returning Ok with no listener bound — a supervisor / CLI\n            // (`openhuman run`, `serve`, `--headless-api`) would otherwise observe\n            // a clean start while the requested API is unavailable. Embedders that\n            // genuinely want no transport leave `ServiceSet::rpc_http` unset, which\n            // is handled by the early return above.\n            //\n            // The bind inputs are only read by the compiled-out `serve_http`; touch\n            // them so they don't read as dead fields in the slim build.\n            let _ = (\n                ready_tx,\n                shutdown_token,\n                self.has_operator_token,\n                self.host.as_ref(),\n                self.port,\n            );\n            anyhow::bail!(\n                \"rpc_http transport was requested but this build was compiled \\\n                 without the `http-server` feature; rebuild with the default \\\n                 `http-server` feature, or use an embedding that does not set \\\n                 `ServiceSet::rpc_http`\"\n            );\n        }\n\n        #[cfg(feature = \"http-server\")]\n        {\n            self.serve_http(ready_tx, shutdown_token).await\n        }\n    }\n\n    /// HTTP + Socket.IO transport body of [`Self::serve`].\n    ///\n    /// Compiled only under the `http-server` feature (#5048): builds the axum\n    /// router, binds the listener, starts the selected background services, and\n    /// serves until shutdown. With the feature off, [`serve`](Self::serve) runs","sourceCodeStart":593,"sourceCodeEnd":629,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/core/runtime/builder.rs#L593-L629","documentation":"The runtime builder was asked to start the rpc_http transport (ServiceSet::rpc_http set on CoreBuilder) but the binary was compiled without the `http-server` Cargo feature, so serve_http does not exist. The builder deliberately fails fast with this message rather than silently skipping a requested transport; the bind inputs are touched in the slim build only so they do not read as dead fields.","triggerScenarios":"An embedding or CLI configuration sets ServiceSet::rpc_http in a build made with --no-default-features or an explicit feature list that omitted http-server; a downstream manifest forgot to forward the feature.","commonSituations":"Custom hosts copying the embed examples and then enabling rpc_http without adding the feature; slim or product builds where http-server was excluded for size; kernel-profile embeddings.","solutions":["Rebuild with the `http-server` feature enabled (it is in the default set).","Or stop requesting the transport: do not set ServiceSet::rpc_http on the builder.","Embedders: audit your Cargo feature list against the ServiceSet you actually build."],"exampleFix":"// before (Cargo.toml: default-features = false, features = [])\nlet services = ServiceSet::none().with_rpc_http(); // runtime bail\n\n// after (Cargo.toml: features = [\"http-server\"])\nlet services = ServiceSet::none().with_rpc_http(); // compiles and serves","handlingStrategy":"validation","validationCode":"#[cfg(feature = \"http-server\")]\nlet services = services.with_rpc_http();\n#[cfg(not(feature = \"http-server\"))]\nlet services = services; // never request a transport this build cannot serve","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Guard ServiceSet::rpc_http behind #[cfg(feature = \"http-server\")] in embedding code.","Keep the Cargo feature list and the ServiceSet construction in the same review when changing builds.","Treat this bail as a wiring bug in the embedder, not a runtime condition to catch."],"tags":["build-config","feature-gate","rpc","http-server","embedding"],"backgroundTag":"compile-time-feature-disabled","analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}