EpicGames/lore · error
Failed to create immutable store plugin
Error message
Failed to create immutable store plugin '{mode}': {e} What it means
Wraps an error from registry.create_immutable_store when the configured mode is not one of the built-in modes and is dispatched to the plugin system instead. The plugin failed to construct the immutable store for the given mode/config; the message includes the mode and the underlying plugin error.
Solutions
- Read the wrapped '{e}' message and fix the plugin-specific configuration under [immutable_store.<mode>].
- Verify the plugin for the given mode is registered in the PluginRegistry before configuration runs.
- Check the mode string spelling in immutable_store.mode.
- Confirm plugin compatibility with the current server version and that any plugin dependency is installed.
Example fix
# before [immutable_store] mode = "s3plugn" # typo, plugin not found # after [immutable_store] mode = "s3plugin" [immutable_store.s3plugin] bucket = "my-bucket"
Defensive patterns
Strategy: try-catch
Validate before calling
if !builtin_modes.contains(&settings.immutable_store.mode.as_str()) {
ensure!(registry.has_immutable_plugin(&settings.immutable_store.mode), "no plugin registered for mode '{}'", settings.immutable_store.mode);
} Try / catch
match configure_immutable_store_via_plugin(®istry, &settings, &topology).await {
Err(e) if e.to_string().starts_with("Failed to create immutable store plugin") => {
eprintln!("plugin store init failed; check plugin registration and its config: {e}");
}
other => other?,
} Prevention
- Register all store plugins in the PluginRegistry before store configuration runs.
- Validate plugin-specific config tables at CI/startup time.
- Keep custom mode strings in one shared constant list to avoid typos.
- Test plugin store creation against the server version in CI.
When it happens
Trigger: immutable_store.mode is a plugin-managed value (not local/composite/replicated/remote) and registry.create_immutable_store(mode, &plugin_config) returns Err — e.g. plugin not registered, plugin init failed, or plugin_config (the TOML table under the mode) is invalid.
Common situations: Custom store mode typo'd or no plugin registered for it; plugin binary/library missing from the registry; plugin-specific config keys wrong or empty; plugin incompatible with the server version.
Related errors
- Missing local immutable store settings
- Missing composite store settings
- Missing replicated store settings
- Missing remote immutable store settings
- Failed to create mutable store plugin
AI-assisted analysis of EpicGames/lore@074eb0b0d1 (2026-09-13).
Data as JSON: /api/errors/0883d7b09491547a.
Report an issue: GitHub.
Appendix: source
Thrown at lore-server/src/server.rs:928
let remote_settings = settings
.immutable_store
.remote
.as_ref()
.ok_or(anyhow!("Missing remote immutable store settings"))?;
configure_remote_immutable_store(remote_settings)
}
_ => {
// All other modes use the plugin system
let plugin_config =
resolve_plugin_config_with_fallback(&settings.plugins, mode, "immutable_store")
.unwrap_or_else(|| toml::Value::Table(toml::map::Map::new()));
info!(mode, "Creating immutable store via plugin system");
registry
.create_immutable_store(mode, &plugin_config)
.map_err(|e| anyhow!("Failed to create immutable store plugin '{mode}': {e}"))
}
}
}
async fn configure_mutable_store_via_plugin(
registry: &PluginRegistry,
settings: &Settings,
immutable_store: Arc<dyn ImmutableStore>,
) -> Result<Arc<dyn MutableStore>> {
let mode = &settings.mutable_store.mode;
match mode.as_str() {
store_mode::LOCAL => {
let local_settings = settings
.mutable_store
.local
.as_ref()
.ok_or(anyhow!("Missing local mutable store settings"))?;View on GitHub (pinned to 074eb0b0d1)