{"record":{"id":"fe280f826d334752","repo":"Yeachan-Heo/oh-my-codex","slug":"shutdown-shared-session-kind-replaceall-fe280f","errorCode":null,"errorMessage":"shutdown_shared_session_${kind.replaceAll(' ', '_')}_owner_unavailable:${paneId}:${owner.error}","messagePattern":"shutdown_shared_session_(.+?)_owner_unavailable:(.+?):(.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/team/runtime.ts","lineNumber":5191,"sourceCode":"      paneId: string,\n      kind: 'HUD pane' | 'restore leader pane',\n      expectedPid?: number | null,\n    ): FrozenSharedPaneAuthorization => {\n      const proof = readExactPaneProofSync(paneId);\n      if (proof.status !== 'live') {\n        throw new Error(`shutdown_shared_session_${kind.replaceAll(' ', '_')}_proof_unavailable:${paneId}`);\n      }\n      if (typeof expectedPid === 'number') {\n        if (!Number.isSafeInteger(expectedPid) || expectedPid <= 0) {\n          throw new Error(`shutdown_shared_session_${kind.replaceAll(' ', '_')}_pid_missing:${paneId}`);\n        }\n        if (proof.pid !== expectedPid) {\n          throw new Error(`shutdown_shared_session_${kind.replaceAll(' ', '_')}_identity_changed:${paneId}`);\n        }\n      }\n      const owner = readPaneTeamOwnerTagResult(paneId);\n      if (owner.status === 'error') {\n        throw new Error(`shutdown_shared_session_${kind.replaceAll(' ', '_')}_owner_unavailable:${paneId}:${owner.error}`);\n      }\n      if (owner.status !== 'value' || !tmuxPaneOwnerId || owner.value !== tmuxPaneOwnerId) {\n        throw new Error(`shutdown_shared_session_${kind.replaceAll(' ', '_')}_owner_changed:${paneId}`);\n      }\n      return { paneId, pid: proof.pid, owner: owner.value };\n    };\n    const assertSharedPaneAuthorizationContinuous = (\n      authorization: FrozenSharedPaneAuthorization,\n      kind: 'HUD pane' | 'restore leader pane',\n    ): void => {\n      const scope = sharedSessionTopology ? 'shared_session' : 'detached_session';\n      const proof = readExactPaneProofSync(authorization.paneId);\n      if (proof.status !== 'live' || proof.pid !== authorization.pid) {\n        throw new Error(`shutdown_${scope}_${kind.replaceAll(' ', '_')}_identity_changed:${authorization.paneId}`);\n      }\n      const owner = readPaneTeamOwnerTagResult(authorization.paneId);\n      if (owner.status === 'error') {\n        throw new Error(`shutdown_${scope}_${kind.replaceAll(' ', '_')}_owner_unavailable:${authorization.paneId}:${owner.error}`);","sourceCodeStart":5173,"sourceCodeEnd":5209,"githubUrl":"https://github.com/Yeachan-Heo/oh-my-codex/blob/3ad79a8a6fe6e95fdbb8c00e40716fffe4011ce2/src/team/runtime.ts#L5173-L5209","documentation":"Thrown when reading the team owner tag for a pane during shutdown fails outright (read error, not just a mismatch). The owner tag establishes which team owns the pane; without it, shutdown cannot safely act on the pane.","triggerScenarios":"readPaneTeamOwnerTagResult(paneId) returns {status:'error'} — the tmux user-option lookup failed, e.g. tmux error, unknown option error, or IPC failure; the raw error is appended to the message.","commonSituations":"tmux server restarted or socket unavailable mid-shutdown; pane destroyed between proof read and owner read (TOCTOU); tmux version that does not support the user option used for tagging.","solutions":["Check the appended owner.error text for the underlying tmux failure","Confirm the tmux server is alive (tmux info) and the pane still exists, then retry shutdown","Verify your tmux version supports pane user options (@-prefixed options) used for owner tags"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"const ownerOk = (paneId) => readPaneTeamOwnerTagResult(paneId).status !== 'error';","typeGuard":null,"tryCatchPattern":"catch (e) { if (/owner_unavailable:.*:.+/.test(e.message)) await sleep(250), retryShutdown(); }","preventionTips":["Ensure tmux server stability during shutdown","Parse the appended underlying error for diagnosis"],"tags":["tmux","owner-tag","transient","shutdown"],"backgroundTag":"tmux-owner-tag-read-failed","analyzedSha":"3ad79a8a6fe6e95fdbb8c00e40716fffe4011ce2","analyzedAt":"2026-08-27T22:18:39.783Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}