{"record":{"id":"34ec6ad447bbfd67","repo":"xai-org/grok-build","slug":"e-title-miss-hint","errorCode":null,"errorMessage":"{e:#}; {title_miss_hint}","messagePattern":"\\{e:#\\}; \\{title_miss_hint\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/codegen/xai-grok-pager/src/app/session_startup.rs","lineNumber":1031,"sourceCode":"            anyhow::bail!(\"{REMOTE_RESTORE_NEEDS_WORKTREE}\")\n        }\n        RemoteMissPlan::NotFound { title_miss_hint } => {\n            if title_miss_hint {\n                anyhow::bail!(\n                    \"Session does not exist: {}\",\n                    super::session_title_resolve::title_miss_hint(session_id)\n                );\n            }\n            anyhow::bail!(\"Session does not exist\")\n        }\n        RemoteMissPlan::RestoreConversation => {\n            let restored =\n                restore_session_from_remote(session_id, cwd, ctx.restore_progress_on_stdout).await;\n            if arg_is_uuid {\n                return restored;\n            }\n            restored.map_err(|e| {\n                anyhow::anyhow!(\n                    \"{e:#}; {}\",\n                    super::session_title_resolve::title_miss_hint(session_id)\n                )\n            })\n        }\n    }\n}\n/// Policy after local id/title resolution misses.\n#[derive(Debug, Clone, Copy, PartialEq, Eq)]\npub(crate) enum RemoteMissPlan {\n    DeferToWorktree {\n        deferred_local_miss: bool,\n    },\n    RejectInPlaceCodeRestore {\n        title_miss_hint: bool,\n    },\n    /// Pre-TUI restore of session state and memory only (never codebase).\n    RestoreConversation,","sourceCodeStart":1013,"sourceCodeEnd":1049,"githubUrl":"https://github.com/xai-org/grok-build/blob/bc7f02eddd3d84085849dc19ed216f11c23b0571/crates/codegen/xai-grok-pager/src/app/session_startup.rs#L1013-L1049","documentation":"When a session id/argument is not a plain UUID, the resolver first attempts remote restore; if the caller's argument could also be a title, a remote miss is retried through title resolution. On failure, the original error chain ({e:#}) is re-wrapped with title_miss_hint(session_id) to suggest that the argument may not match any session title.","triggerScenarios":"Passing a non-UUID argument (assumed to be a session title) to resume where restore_session_from_remote fails — the id does not exist remotely AND no session title matches the argument, so the hint is appended.","commonSituations":"Typing a partial or stale session title after sessions were renamed/deleted on the remote; resuming from a different machine/account without the remote session; ambiguity between a UUID-looking string and a title.","solutions":["Run grok resume with no argument to list available sessions and copy the exact title or id","Check you are authenticated to the same remote account/workspace that holds the session","Quote the full title exactly (titles with spaces/special chars need exact matching)","If you have the UUID, pass the UUID directly so the title-miss hint path is skipped"],"exampleFix":"// before: guessed title\n$ grok resume \"fix login bug\"\n// after: exact title from session list\n$ grok resume\n$ grok resume \"Fix login bug in auth flow\"","handlingStrategy":"try-catch","validationCode":"// confirm the argument matches a known session before resuming\nlet summaries = xai_grok_shell::session::persistence::list_summaries(Some(cwd)).await?;\nlet known = summaries.iter().any(|s|\n    s.info.id.to_string() == arg ||\n    s.display_title_opt().as_deref() == Some(arg.as_str()));\nif !known { eprintln!(\"unknown session id/title: {arg}\"); }","typeGuard":null,"tryCatchPattern":"match resume(arg).await {\n    Err(e) if e.to_string().contains(\"may not be a valid session title\") ||\n              title_miss_hint_applies(&e) => {\n        eprintln!(\"'{arg}' matched no session; run the list command to pick one\");\n    }\n    other => other.map(|_| ()),\n}","preventionTips":["List sessions and copy ids/titles exactly rather than typing from memory","Prefer UUIDs over titles when scripting resume","Keep remote auth/session sync working so titles exist on the resuming machine","Quote titles containing spaces or special characters"],"tags":["session","resume","remote","not-found"],"backgroundTag":"session-not-found","analyzedSha":"bc7f02eddd3d84085849dc19ed216f11c23b0571","analyzedAt":"2026-08-31T04:59:42.031Z","schemaVersion":2},"datasetVersion":"2026-08-31T09:17:48.483Z"}