{"record":{"id":"b3117865205ecd04","repo":"zed-industries/zed","slug":"mark-name-contains-empty-anchors","errorCode":null,"errorMessage":"mark {name} contains empty anchors","messagePattern":"mark (.+?) contains empty anchors","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/vim/src/command.rs","lineNumber":1363,"sourceCode":"                        cx,\n                    )\n                }) {\n                    anchor\n                        .to_point(&snapshot.buffer_snapshot())\n                        .row\n                        .saturating_add_signed(*offset)\n                } else {\n                    row.saturating_add_signed(offset.saturating_sub(1))\n                }\n            }\n            Position::Mark { name, offset } => {\n                let Some(Mark::Local(anchors)) =\n                    vim.get_mark(&name.to_string(), editor, window, cx)\n                else {\n                    anyhow::bail!(\"mark {name} not set\");\n                };\n                let Some(mark) = anchors.last() else {\n                    anyhow::bail!(\"mark {name} contains empty anchors\");\n                };\n                mark.to_point(&snapshot.buffer_snapshot())\n                    .row\n                    .saturating_add_signed(*offset)\n            }\n            Position::LastLine { offset } => snapshot\n                .buffer_snapshot()\n                .max_row()\n                .0\n                .saturating_add_signed(*offset),\n            Position::CurrentLine { offset } => editor\n                .selections\n                .newest_anchor()\n                .head()\n                .to_point(&snapshot.buffer_snapshot())\n                .row\n                .saturating_add_signed(*offset),\n        };","sourceCodeStart":1345,"sourceCodeEnd":1381,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/vim/src/command.rs#L1345-L1381","documentation":"Raised while resolving a vim Position::Mark when the mark exists as Mark::Local but its anchor list is empty. The mark was recorded without usable anchors (e.g. the buffer snapshot they pointed into is gone), so the position cannot be computed.","triggerScenarios":"Thrown at crates/vim/src/command.rs:1363 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Re-set the mark; its stored anchors were invalidated by buffer edits","Reopen the file/restart the session to clear stale mark state","Report the bug if empty anchors persist after re-setting the mark"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}