zeroclaw-labs/zeroclaw · error

plugin store/linker http mismatch: store HttpClient={store_h

Error message

plugin store/linker http mismatch: store HttpClient={store_has_http}, linker wasi:http={linker_has_http}; refusing to instantiate

What it means

Error "plugin store/linker http mismatch: store HttpClient={store_has_http}, linker wasi:http={linker_has_http}; refusing to instantiate" thrown in zeroclaw-labs/zeroclaw.

Source

Thrown at crates/zeroclaw-plugins/src/component.rs:264

        "failed to add WASI imports to plugin linker",
    )
}

/// Wire the outbound `wasi:http` surface into a plugin linker. Only call this
/// for a linker that backs stores built with the `HttpClient` permission; the
/// store's `WasiHttpView::http` panics otherwise, which keeps a permission
/// mismatch from silently granting network access.
pub fn add_wasi_http(linker: &mut wasmtime::component::Linker<PluginState>) -> Result<()> {
    wt(
        wasmtime_wasi_http::p2::add_only_http_to_linker_async(linker),
        "failed to add wasi:http imports to plugin linker",
    )
}

pub fn ensure_http_coherent(store: &Store<PluginState>, linker_has_http: bool) -> Result<()> {
    let store_has_http = store.data().http_enabled();
    if store_has_http != linker_has_http {
        anyhow::bail!(
            "plugin store/linker http mismatch: store HttpClient={store_has_http}, \
             linker wasi:http={linker_has_http}; refusing to instantiate"
        );
    }
    Ok(())
}

pub fn engine() -> &'static Engine {
    static ENGINE: OnceLock<Engine> = OnceLock::new();
    ENGINE.get_or_init(|| {
        let mut config = Config::new();
        config.consume_fuel(true);
        Engine::new(&config).expect("async-capable wasmtime engine")
    })
}

/// Build a Wasmtime store whose imports are derived from one admitted scope.
pub(crate) fn new_store(spec: PluginStoreSpec) -> Store<PluginState> {

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Align store and linker HTTP capability: either enable wasi:http on both or disable on both, then rebuild the plugin host config.

When it happens

Trigger: Thrown at crates/zeroclaw-plugins/src/component.rs:264 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/bd3916bf31a2e255. Report an issue: GitHub.