nautechsystems/nautilus_trader · error
LiveNodeConfig.plugins requires host-side plug-in support; n
Error message
LiveNodeConfig.plugins requires host-side plug-in support; nautilus-plugin is the guest SDK only
What it means
Configured plug-ins can only load when the host supports plug-ins. In this build, nautilus-plugin is only the guest SDK, so if any plugins are present in LiveNodeConfig, load_configured_plugins (called during build) fails unconditionally rather than silently skipping them.
Source
Thrown at crates/live/src/node/mod.rs:323
};
node.load_configured_plugins()?;
log::info!("LiveNode built successfully with kernel config");
Ok(node)
}
/// Loads and registers plug-ins declared on the node config.
///
/// # Errors
///
/// Returns an error when plug-ins are configured without host-side support.
pub(crate) fn load_configured_plugins(&self) -> anyhow::Result<()> {
if self.config.plugins.is_empty() {
return Ok(());
}
anyhow::bail!(
"LiveNodeConfig.plugins requires host-side plug-in support; nautilus-plugin is the guest SDK only"
)
}
/// Loads and registers one plug-in instance.
///
/// # Errors
///
/// Returns an error because dynamic plug-in hosting lives in the host-side integration.
#[expect(
clippy::needless_pass_by_value,
reason = "signature mirrors the host-enabled API"
)]
pub fn add_plugin(&mut self, config: PluginConfig) -> anyhow::Result<()> {
#[cfg(feature = "plugin")]
config.validate_runtime_support(self.config.plugins.len())?;
#[cfg(not(feature = "plugin"))]
let _ = config;View on GitHub (pinned to 18893faf8b)
Solutions
- Clear LiveNodeConfig.plugins or remove plugin entries from the config file.
- Enable host-side plug-in support (the `plugin` feature) if the build is supposed to host plug-ins.
- Integrate plug-in functionality directly rather than through the plug-in mechanism.
Example fix
// before
let config = LiveNodeConfig { plugins: vec![plugin_cfg], .. };
// after
let config = LiveNodeConfig { plugins: vec![], .. }; // no host plug-in support Defensive patterns
Strategy: validation
Validate before calling
assert!(config.plugins.is_empty(), "plugins configured but host plug-in support is unavailable");
Try / catch
if let Err(e) = node.build() { if e.to_string().contains("host-side plug-in") { /* drop plugins and rebuild */ } } Prevention
- Only populate LiveNodeConfig.plugins when host plug-in support is compiled in.
- Remember nautilus-plugin is the guest SDK, not a host runtime.
- Keep plugin config in environment-specific files.
When it happens
Trigger: LiveNodeConfig.plugins is non-empty while the crate lacks host-side plug-in support (no `plugin` feature / nautilus-plugin host runtime); invoked via LiveNode::build.
Common situations: Reusing a config that listed plug-ins from an environment where the plugin host feature was enabled; expecting nautilus-plugin to provide hosting when it only offers the guest SDK.
Related errors
- LiveNodeConfig.controller for importable controller '{}' req
- LiveNodeConfig.controller for importable controller '{}' req
- LiveNode::add_plugin requires host-side plug-in support; nau
- CreateActor command for importable actor '{}' is not support
- CreateStrategy command for importable strategy '{}' is not s
AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08).
Data as JSON: /api/errors/ffbb6e1307f9cb35.
Report an issue: GitHub.