{"record":{"id":"8e2f03d7793a9169","repo":"affaan-m/ECC","slug":"unknown-memory-connector-name","errorCode":null,"errorMessage":"Unknown memory connector: {name}","messagePattern":"Unknown memory connector: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"ecc2/src/main.rs","lineNumber":2942,"sourceCode":") -> Result<()> {\n    db.refresh_session_durations()?;\n    db.sync_cost_tracker_metrics(&cfg.cost_metrics_path())?;\n    db.sync_tool_activity_metrics(&cfg.tool_activity_metrics_path())?;\n    let _ = session::manager::enforce_session_heartbeats(db, cfg)?;\n    let _ = session::manager::enforce_budget_hard_limits(db, cfg)?;\n    Ok(())\n}\n\nfn sync_memory_connector(\n    db: &session::store::StateStore,\n    cfg: &config::Config,\n    name: &str,\n    limit: usize,\n) -> Result<GraphConnectorSyncStats> {\n    let connector = cfg\n        .memory_connectors\n        .get(name)\n        .ok_or_else(|| anyhow::anyhow!(\"Unknown memory connector: {name}\"))?;\n\n    match connector {\n        config::MemoryConnectorConfig::JsonlFile(settings) => {\n            sync_jsonl_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::JsonlDirectory(settings) => {\n            sync_jsonl_directory_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::MarkdownFile(settings) => {\n            sync_markdown_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::MarkdownDirectory(settings) => {\n            sync_markdown_directory_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::DotenvFile(settings) => {\n            sync_dotenv_memory_connector(db, name, settings, limit)\n        }\n    }","sourceCodeStart":2924,"sourceCodeEnd":2960,"githubUrl":"https://github.com/affaan-m/ECC/blob/01e15490f04e29cfefe3896951f43db46994d8ee/ecc2/src/main.rs#L2924-L2960","documentation":"Thrown by `sync_memory_connector` (and reached via the single-connector sync path) when `cfg.memory_connectors.get(name)` returns `None`. The configured connectors map does not contain an entry with the supplied name, so the dispatch `match` on connector type cannot proceed. The error fires before any filesystem access, making it a pure configuration lookup failure.","triggerScenarios":"Running `ecc graph connectors sync <name>` where `<name>` is not a key in the `memory_connectors` table of the loaded config. Renaming a connector in config but not in the calling script. Case-sensitivity mismatches in the connector key.","commonSituations":"Config file not reloaded after editing. Typo in the connector name. Multiple config sources (global vs project) where the key only exists in one. Using a connector name from documentation that differs from the actual config key.","solutions":["List configured connectors with `ecc graph connectors` to see valid names.","Verify the `[memory_connectors.<name>]` section exists in the active config file.","Check for typos and case mismatch against the key exactly as written in config."],"exampleFix":"// before (config has [memory_connectors.notes] but call uses 'journal')\necc graph connectors sync journal\n\n// after\necc graph connectors sync notes","handlingStrategy":"validation","validationCode":"// Check connector is configured before sync\nif !cfg.memory_connectors.contains_key(name) {\n    eprintln!(\"unknown connector '{name}'. configured: {:?}\", cfg.memory_connectors.keys().collect::<Vec<_>>());\n    return Ok(());\n}","typeGuard":null,"tryCatchPattern":"let connector = cfg.memory_connectors.get(name)\n    .ok_or_else(|| anyhow!(\"Unknown memory connector: {name}; run `ecc graph connectors` to list\"));","preventionTips":["Keep connector names in sync between config and calling scripts; lint for mismatches.","Use `ecc graph connectors` to enumerate valid names before scripting.","Treat connector names as case-sensitive identifiers."],"tags":["connector","config","memory","graph"],"backgroundTag":null,"analyzedSha":"01e15490f04e29cfefe3896951f43db46994d8ee","analyzedAt":"2026-08-13T00:31:08.655Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}