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

  1. Clear LiveNodeConfig.plugins or remove plugin entries from the config file.
  2. Enable host-side plug-in support (the `plugin` feature) if the build is supposed to host plug-ins.
  3. 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

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


AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08). Data as JSON: /api/errors/ffbb6e1307f9cb35. Report an issue: GitHub.