{"record":{"id":"5531f710a585938e","repo":"atuinsh/atuin","slug":"unknown-tag-tag","errorCode":null,"errorMessage":"unknown tag: {tag}","messagePattern":"unknown tag: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/atuin/src/command/client/store/rebuild.rs","lineNumber":45,"sourceCode":"        // keep it as a string and not an enum atm\n        // would be super cool to build this dynamically in the future\n        // eg register handles for rebuilding various tags without having to make this part of the\n        // binary big\n        match self.tag.as_str() {\n            \"history\" => {\n                self.rebuild_history(settings, store.clone(), database).await?;\n            }\n\n            \"dotfiles\" => {\n                self.rebuild_dotfiles(settings, store.clone()).await?;\n            }\n\n            \"scripts\" => {\n                self.rebuild_scripts(settings, store.clone()).await?;\n            }\n\n            tag => {\n                bail!(\"unknown tag: {tag}\");\n            }\n        }\n\n        Ok(())\n    }\n\n    /// The daemon owns the rebuild when enabled; otherwise we rebuild locally.\n    async fn rebuild_history(\n        &self,\n        settings: &Settings,\n        store: SqliteStore,\n        database: &Sqlite,\n    ) -> Result<()> {\n        #[cfg(feature = \"daemon\")]\n        if settings.daemon.enabled {\n            daemon::rebuild_history(settings).await?;\n            return Ok(());\n        }","sourceCodeStart":27,"sourceCodeEnd":63,"githubUrl":"https://github.com/atuinsh/atuin/blob/c0c717ab04c881764bcad4b3d169a507e2432643/crates/atuin/src/command/client/store/rebuild.rs#L27-L63","documentation":"`atuin store rebuild <tag>` dispatches to a type-specific rebuild routine matched against known record tags (e.g. \"history\", \"scripts\", KV, aliases, vars). If the supplied tag doesn't match any known handler, it bails with \"unknown tag: {tag}\". Rebuilds are intentionally explicit per data type, so arbitrary/misspelled tags are rejected.","triggerScenarios":"Running `atuin store rebuild <tag>` with a tag that is not one of the supported record types (misspelling like \"histroy\", or inventing a tag that has no rebuild path).","commonSituations":"Typos in the tag, following outdated docs for a renamed/removed data type, or attempting to rebuild a synced data type that has no rebuild implementation.","solutions":["Use an exact supported tag, e.g. `atuin store rebuild history` or `atuin store rebuild scripts`.","Check `atuin store status` to see which record types/tags exist in your store.","Consult `atuin store rebuild --help` for the current list of valid tags."],"exampleFix":"// before\natuin store rebuild histroy\n// after\natuin store rebuild history","handlingStrategy":"validation","validationCode":"# shell\ncase \"$tag\" in\n  history|scripts|kv|aliases|vars) atuin store rebuild \"$tag\" ;;\n  *) echo \"unsupported tag: $tag\" >&2; exit 1 ;;\nesac","typeGuard":null,"tryCatchPattern":"if ! atuin store rebuild \"$tag\"; then\n  atuin store status   # inspect valid record types\nfi","preventionTips":["Check `atuin store rebuild --help` for valid tags.","Spell tags exactly (history, scripts, kv, aliases, vars).","Use `atuin store status` to confirm which record types you actually have."],"tags":["cli","invalid-argument","record-store"],"backgroundTag":"invalid-enum-value","analyzedSha":"c0c717ab04c881764bcad4b3d169a507e2432643","analyzedAt":"2026-09-12T07:40:01.341Z","contentChangedAt":"2026-09-12T07:40:01.341Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}