zeroclaw-labs/zeroclaw · error
tool http linker
Error message
tool http linker
What it means
Error "tool http linker" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-plugins/src/runtime.rs:64
"failed to add tool plugin imports to linker",
)?;
Ok(linker)
}
/// Cached linker for plugins without `HttpClient`: base WASI plus the tool
/// world, no network.
fn tool_linker() -> &'static Linker<PluginState> {
static LINKER: OnceLock<Linker<PluginState>> = OnceLock::new();
LINKER.get_or_init(|| base_linker().expect("tool linker"))
}
/// Cached linker for `HttpClient` plugins: the base surface plus `wasi:http`.
/// Built only once, on first use by an HTTP-granted plugin.
fn tool_linker_http() -> &'static Linker<PluginState> {
static LINKER: OnceLock<Linker<PluginState>> = OnceLock::new();
LINKER.get_or_init(|| {
let mut linker = base_linker().expect("tool linker");
crate::component::add_wasi_http(&mut linker).expect("tool http linker");
linker
})
}
/// Compile and instantiate a tool plugin under one host-issued scope.
///
/// The scope decides whether the store carries an outbound-HTTP context and
/// whether the linker exposes `wasi:http`; deriving both from the same scope
/// prevents authority from drifting between instantiation and execution.
pub async fn create_plugin(
wasm_path: &Path,
scope: &PluginInstanceScope,
limits: crate::component::PluginLimits,
) -> Result<Plugin> {
scope.require_capability(PluginCapability::Tool)?;
let component = load_component(wasm_path)?;
let mut store = crate::component::new_store(
PluginStoreSpec::new(scope.clone(), limits).with_granted_http(),View on GitHub (pinned to 88bb9c8533)
Solutions
- Ensure the HTTP-capable linker is configured before loading plugins that use HTTP host functions.
- Enable the required plugin HTTP feature and restart the runtime.
When it happens
Trigger: Thrown at crates/zeroclaw-plugins/src/runtime.rs:64 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/059c8657a5330c48.
Report an issue: GitHub.