{"record":{"id":"35873036c84c3d9c","repo":"EpicGames/lore","slug":"no-local-store-settings-found","errorCode":null,"errorMessage":"No local store settings found","messagePattern":"No local store settings found","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"lore-server/src/server.rs","lineNumber":1780,"sourceCode":"\n        // We're ok assuming that local store settings are present when seeding is enabled, if it's\n        // not let it panic, and we can fix the configuration.\n        let local_store_settings = match mode.as_str() {\n            store_mode::LOCAL => settings\n                .immutable_store\n                .local\n                .clone()\n                .ok_or(anyhow!(\"Missing local immutable store settings\")),\n            store_mode::COMPOSITE => settings\n                .immutable_store\n                .composite\n                .as_ref()\n                .and_then(|s| s.local.local.clone())\n                .ok_or(anyhow!(\"Missing composite store settings\")),\n            _ => {\n                // If store mode is not local or composite, there's no local store settings to be\n                // had.\n                Err(anyhow!(\"No local store settings found\"))\n            }\n        }?;\n\n        seed_local_store(&local_store_settings).await?;\n    }\n\n    // Configure topology using plugin registry\n    let topology_provider = settings\n        .topology\n        .as_ref()\n        .and_then(|t| t.provider.plugin_name());\n\n    let topology = configure_topology_with_registry(\n        &plugin_registry,\n        settings.topology.as_ref(),\n        &settings.plugins,\n    )?;\n","sourceCodeStart":1762,"sourceCodeEnd":1798,"githubUrl":"https://github.com/EpicGames/lore/blob/074eb0b0d1194c997d7cf28b55519e3e197b3e23/lore-server/src/server.rs#L1762-L1798","documentation":"The server startup code computes the local store settings from the loaded configuration. That only makes sense when the store mode is `local` or `composite`; for any other store mode the config has no local store settings, and seeding a local store would be wrong. The server therefore aborts startup with this error to make the misconfiguration explicit rather than silently skipping store seeding.","triggerScenarios":"Calling `async_main` (via `server_main`) with a settings file whose store mode is neither \"local\" nor \"composite\" — e.g. mode set to some other backend/remote variant — so the match arm falls into the `_ =>` case and `seed_local_store` cannot proceed.","commonSituations":"Copying a config from a deployment that uses a remote or cluster store mode to a machine that expects local seeding; typos in the store-mode enum value in the settings file; upgrading the server while the config still carries a store mode that no longer supports local stores.","solutions":["Set the store mode in the server settings file to \"local\" (or \"composite\" if a composite store is intended) and supply the corresponding local store settings.","If this deployment genuinely has no local store, remove or bypass the local-store seeding path instead of running the mode that requires it.","Verify the store mode string matches an enum variant accepted by the settings deserializer (no typos, correct casing)."],"exampleFix":"// before (config)\nstore = { mode = \"remote\", ... }\n// after\nstore = { mode = \"local\", local = { path = \"/var/lib/lore/store\" } }","handlingStrategy":"validation","validationCode":"// Rust: validate settings before calling server_main\nfn ensure_local_store_settings(settings: &Settings) -> Result<(), String> {\n    match settings.store_mode {\n        StoreMode::Local | StoreMode::Composite => Ok(()),\n        other => Err(format!(\n            \"store mode {other:?} has no local store settings; use 'local' or 'composite'\"\n        )),\n    }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate the store mode against supported variants at config-load time, before startup side effects.","Keep per-mode example configs in the repo and lint deployments against them.","Log the parsed store mode at startup so mismatches are obvious in ops output."],"tags":["config","startup","store"],"backgroundTag":"missing-required-config-field","analyzedSha":"074eb0b0d1194c997d7cf28b55519e3e197b3e23","analyzedAt":"2026-09-13T09:00:57.509Z","contentChangedAt":"2026-09-13T09:00:57.509Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}