{"record":{"id":"2954f56c22da0c01","repo":"jdx/mise","slug":"checkpoint-has-no-content-snapshot","errorCode":null,"errorMessage":"checkpoint {} has no content snapshot","messagePattern":"checkpoint (.+?) has no content snapshot","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cli/dotfiles/history/show.rs","lineNumber":145,"sourceCode":"        }\n        for omitted in &coverage.omitted {\n            miseprintln!(\"  omitted: {} ({})\", omitted.path, omitted.reason);\n        }\n        for incomplete in &coverage.incomplete {\n            miseprintln!(\"  incomplete: {} ({})\", incomplete.path, incomplete.reason);\n        }\n        if let Some(operation) = &c.operation\n            && !operation.journal.is_empty()\n        {\n            miseprintln!(\"\");\n            miseprintln!(\"Journal:\");\n            for line in journal::render(&operation.journal) {\n                miseprintln!(\"  - {line}\");\n            }\n        }\n        if self.files {\n            let Some(tree) = &c.tree.snapshot else {\n                bail!(\"checkpoint {} has no content snapshot\", entry.id);\n            };\n            let Some(repo) = store.repo() else {\n                bail!(\"listing snapshot files requires git\");\n            };\n            miseprintln!(\"\");\n            miseprintln!(\"Files:\");\n            for file in repo.ls_tree(tree)? {\n                let size = file.size.map(|size| size.to_string()).unwrap_or_default();\n                miseprintln!(\n                    \"  {} {:>8} {}\",\n                    file.mode,\n                    size,\n                    crate::system::history::tracked::tree_path_to_display(&file.path)\n                );\n            }\n        }\n        Ok(())\n    }","sourceCodeStart":127,"sourceCodeEnd":163,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/cli/dotfiles/history/show.rs#L127-L163","documentation":"`mise dotfiles history show --files` lists the file tree captured in the checkpoint. Some checkpoints only record journal/metadata without a content snapshot (snapshot is None); asking for --files on such a checkpoint bails with the checkpoint id.","triggerScenarios":"`mise dotfiles history show <id> --files` where c.tree.snapshot is None for that checkpoint — e.g. checkpoints created before snapshot capture was enabled or for operations that did not snapshot content.","commonSituations":"Old checkpoints from before the snapshot feature; large files configured to skip snapshots; corrupted store where the snapshot tree reference was lost.","solutions":["Omit --files and use the journal output instead for that checkpoint","Pick a newer checkpoint that includes a content snapshot (check `mise dotfiles history ls`)","Recreate a checkpoint by touching/saving the file so a fresh snapshot is taken"],"exampleFix":"// before\nmise dotfiles history show ckpt123 --files   // no snapshot\n// after\nmise dotfiles history show ckpt123           # journal only\n# or pick a snapshot-bearing checkpoint\nmise dotfiles history ls","handlingStrategy":"fallback","validationCode":"mise dotfiles history ls | grep \"$ckpt\"   # confirm checkpoint age/features","typeGuard":null,"tryCatchPattern":"match Err(msg) if msg.contains(\"has no content snapshot\") => retry without --files and use journal output","preventionTips":["Prefer recent checkpoints created after snapshot support","Keep the store intact so snapshot references are not lost","Create fresh checkpoints before experimenting"],"tags":["dotfiles","history","data"],"backgroundTag":"empty-required-field","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}