Yeachan-Heo/oh-my-codex · error · Error
failed to reconcile standalone HUD resize: ${reconcile.stder
Error message
failed to reconcile standalone HUD resize: ${reconcile.stderr} What it means
Thrown by restoreStandaloneHudPane on Windows when an existing HUD pane is found and the immediate resize reconciliation (runTmux(buildHudResizeArgs(...))) fails. The message embeds the tmux stderr. resize-pane failing means the HUD pane exists but cannot be resized to the expected team height, so the restore aborts after the pane is already reconciled as live and authorized.
Source
Thrown at src/team/tmux-session.ts:3042
for (const paneId of [existingHudPaneId, ...duplicateHudPaneIds]) {
if (!paneId) continue;
const proof = readExactPaneProofSync(paneId);
if (proof.status === 'unavailable') throw new ExactPaneProofUnavailableError(proof);
if (proof.status === 'gone') throw new Error(`tmux pane is not proven live: ${paneId}`);
ownedHudPanePids.set(paneId, proof.pid);
}
for (const paneId of duplicateHudPaneIds) {
killExactPaneSync(paneId, ownedHudPanePids.get(paneId), requireAuthorizedLeaderPane);
}
if (existingHudPaneId) {
if (isNativeWindows()) {
const exactHudPaneId = requireLiveExactPaneSync(
existingHudPaneId,
ownedHudPanePids.get(existingHudPaneId),
);
requireAuthorizedLeaderPane();
const reconcile = runTmux(buildHudResizeArgs(exactHudPaneId));
if (!reconcile.ok) throw new Error(`failed to reconcile standalone HUD resize: ${reconcile.stderr}`);
} else {
requireAuthorizedLeaderPane();
runTmux(buildScheduleDelayedHudResizeArgs(
existingHudPaneId,
HUD_RESIZE_RECONCILE_DELAY_SECONDS,
HUD_TMUX_TEAM_HEIGHT_LINES,
ownedHudPanePids.get(existingHudPaneId),
));
requireAuthorizedLeaderPane();
runTmux(buildReconcileHudResizeArgs(
existingHudPaneId,
HUD_TMUX_TEAM_HEIGHT_LINES,
ownedHudPanePids.get(existingHudPaneId),
));
}
runTmux(['select-pane', '-t', requireAuthorizedLeaderPane()]);
return existingHudPaneId;
}View on GitHub (pinned to 3ad79a8a6f)
Solutions
- Run the resize command manually with the pane id and read the embedded stderr (e.g. tmux resize-pane and check size limits)
- Enlarge the terminal/window so the requested HUD height fits
- Change the window layout to a resizable one (select-layout even-vertical / tiled)
- Retry after unzooming the window (resize-pane -Z toggles zoom)
Defensive patterns
Strategy: validation
Validate before calling
function windowTallEnough(lines: number): boolean { return process.stdout.rows ?? 0 > lines + 2; }
if (isNativeWindows() && !windowTallEnough(HUD_TMUX_TEAM_HEIGHT_LINES)) throw new Error('enlarge terminal before restore'); Try / catch
try { restoreStandaloneHudPane(id, cwd, opts); } catch (e) { if (e instanceof Error && e.message.startsWith('failed to reconcile standalone HUD resize')) { /* run resize manually, fix layout/terminal size, retry */ } else throw e; } Prevention
- Ensure terminal height exceeds the HUD pane height plus leader needs
- Use resizable layouts (avoid locked/zoomed windows)
- On Windows, verify the tmux port supports the resize args used
When it happens
Trigger: On native Windows (isNativeWindows()), an existing HUD pane passes requireLiveExactPaneSync and leader authorization, then the resize-pane command in buildHudResizeArgs returns !ok — e.g. pane in a layout that forbids resizing, pane too small/large, or tmux error.
Common situations: Window layout (even-horizontal, main-pane, etc.) blocks manual pane sizing; the terminal window is too small for HUD_TMUX_TEAM_HEIGHT_LINES; MSYS/Windows tmux port quirks with resize-pane; pane became part of a zoomed window.
Related errors
- Failed to create psmux question renderer shell pane.
- invalid auth slot path
- auth directory must not be a symlink: ${dir}
- auth path is not a directory: ${dir}
- ${label} is not a file: ${path}
AI-assisted analysis of Yeachan-Heo/oh-my-codex@3ad79a8a6f (2026-08-27).
Data as JSON: /api/errors/79b6d0f2291865f6.
Report an issue: GitHub.