Splitting panes from command line causes a crash. #23715

Open
opened 2026-01-31 08:50:12 +00:00 by claunia · 6 comments
Owner

Originally created by @R3DW1N3 on GitHub (Oct 16, 2025).

Windows Terminal version

1.23.12811.0

Windows build number

10.0.26100.6508

Other Software

No response

Steps to reproduce

Launching the following from command prompt:

wt.exe -M -p Arch_Clear ; split-pane -V -s .55 -p Arch_Clear ; split-pane -H -s .15 -p Arch_Clear_Small ; split-pane -v -s .25 -p Arch_Retro ; mf up ; split-pane -V -s .3 -p Arch_Clear_Small ; split-pane -H -s .5 -p Arch_Clear_Small ; split-pane -H -s .6 -p Arch_Retro ; mf left ; split-pane -H -s .25 -p CMD_Bottom ; mf left

Expected Behavior

Terminal launches into 8 panes, with varying profiles.

Actual Behavior

All terminal windows crash, including the command prompt used to launch wt.exe.

Originally created by @R3DW1N3 on GitHub (Oct 16, 2025). ### Windows Terminal version 1.23.12811.0 ### Windows build number 10.0.26100.6508 ### Other Software _No response_ ### Steps to reproduce Launching the following from command prompt: wt.exe -M -p Arch_Clear ; split-pane -V -s .55 -p Arch_Clear ; split-pane -H -s .15 -p Arch_Clear_Small ; split-pane -v -s .25 -p Arch_Retro ; mf up ; split-pane -V -s .3 -p Arch_Clear_Small ; split-pane -H -s .5 -p Arch_Clear_Small ; split-pane -H -s .6 -p Arch_Retro ; mf left ; split-pane -H -s .25 -p CMD_Bottom ; mf left ### Expected Behavior Terminal launches into 8 panes, with varying profiles. ### Actual Behavior All terminal windows crash, including the command prompt used to launch wt.exe.
claunia added the Issue-BugProduct-TerminalPriority-1Area-Windowing labels 2026-01-31 08:50:13 +00:00
Author
Owner

@lhecker commented on GitHub (Oct 16, 2025):

Perhaps it would be best if you captured a crash dump for us. You can find instructions here: https://github.com/microsoft/terminal/wiki/Troubleshooting-Tips#capture-automatically

You can send the dumps to <my github username>@microsoft.com.

@lhecker commented on GitHub (Oct 16, 2025): Perhaps it would be best if you captured a crash dump for us. You can find instructions here: https://github.com/microsoft/terminal/wiki/Troubleshooting-Tips#capture-automatically You can send the dumps to `<my github username>@microsoft.com`.
Author
Owner

@R3DW1N3 commented on GitHub (Oct 16, 2025):

Sent.

@R3DW1N3 commented on GitHub (Oct 16, 2025): Sent.
Author
Owner

@avenmore commented on GitHub (Oct 17, 2025):

Started happening for me too (after latest Windows update 2025-10-14?).

My .bat:

@echo off

start wt ^
--title "MyApp" -d "." cmd /k "npm run --prefix myapp dev" ^
; split-pane -V ^
--title "MyApp Admin" -d "." cmd /k "npm run --prefix myappadmin dev" ^
; move-focus left ^
; split-pane -H ^
--title "MyApp Portal" -d "." cmd /k "npm run --prefix myappcp dev" ^
; move-focus right ^
; split-pane -H ^
--title "MyApp Docs" -d "." cmd /k "npm run --prefix mayappdocs dev" ^
; move-focus up ^
; move-focus left

It creates one pane, some times two or three, extremely laggy, but then hangs and all my fans spin up and I have to kill it.

@avenmore commented on GitHub (Oct 17, 2025): Started happening for me too (after latest Windows update 2025-10-14?). My .bat: ``` @echo off start wt ^ --title "MyApp" -d "." cmd /k "npm run --prefix myapp dev" ^ ; split-pane -V ^ --title "MyApp Admin" -d "." cmd /k "npm run --prefix myappadmin dev" ^ ; move-focus left ^ ; split-pane -H ^ --title "MyApp Portal" -d "." cmd /k "npm run --prefix myappcp dev" ^ ; move-focus right ^ ; split-pane -H ^ --title "MyApp Docs" -d "." cmd /k "npm run --prefix mayappdocs dev" ^ ; move-focus up ^ ; move-focus left ``` It creates one pane, some times two or three, extremely laggy, but then hangs and all my fans spin up and I have to kill it.
Author
Owner

@kdt523 commented on GitHub (Oct 17, 2025):

Hi, I’d like to work on this issue . Could you please assign it to me?

@kdt523 commented on GitHub (Oct 17, 2025): Hi, I’d like to work on this issue . Could you please assign it to me?
Author
Owner

@lhecker commented on GitHub (Oct 17, 2025):

I checked the 3 dumps that were sent to me (Thanks all!) and all of them contained the same portion:

TerminalApp.dll!Pane::_CalcSnappedChildrenSizes(const bool widthOrHeight, const float fullSize) Line 2587
TerminalApp.dll!Pane::_CalcSnappedDimension(const bool widthOrHeight, const float dimension) Line 2703
[Inline Frame] TerminalApp.dll!Pane::CalcSnappedDimension(const bool) Line 2616
[Inline Frame] TerminalApp.dll!winrt::TerminalApp::implementation::TerminalTab::CalcSnappedDimension(const bool) Line 750
[Inline Frame] TerminalApp.dll!winrt::TerminalApp::implementation::TerminalPage::CalcSnappedDimension(const bool) Line 2744
[Inline Frame] TerminalApp.dll!winrt::TerminalApp::implementation::TerminalWindow::CalcSnappedDimension(const bool) Line 773
TerminalApp.dll!winrt::impl::produce<winrt::TerminalApp::implementation::TerminalWindow,winrt::TerminalApp::ITerminalWindow>::CalcSnappedDimension(bool widthOrHeight, float dimension, float * result) Line 7958
[Inline Frame] WindowsTerminal.exe!winrt::impl::consume_TerminalApp_ITerminalWindow<winrt::TerminalApp::ITerminalWindow>::CalcSnappedDimension(bool) Line 3303
[Inline Frame] WindowsTerminal.exe!AppHost::Initialize::__l2::<lambda_5>::operator()(bool &&) Line 283
[Inline Frame] WindowsTerminal.exe!std::invoke(AppHost::Initialize::__l2::<lambda_5> &) Line 1680
WindowsTerminal.exe!std::_Func_impl_no_alloc<`AppHost::Initialize'::`2'::<lambda_5>,float,bool,float>::_Do_call(bool && <_Args_0>, float && <_Args_1>) Line 882
[Inline Frame] WindowsTerminal.exe!std::_Func_class<float,bool,float>::operator()(bool <_Args_0>, float <_Args_1>) Line 926
[Inline Frame] WindowsTerminal.exe!IslandWindow::_OnGetMinMaxInfo(const unsigned __int64) Line 469
WindowsTerminal.exe!IslandWindow::MessageHandler(const unsigned int message, const unsigned __int64 wparam, const __int64 lparam) Line 488
WindowsTerminal.exe!NonClientIslandWindow::MessageHandler(const unsigned int message, const unsigned __int64 wParam, const __int64 lParam) Line 984
WindowsTerminal.exe!BaseWindow<IslandWindow>::WndProc(HWND__ * const window, const unsigned int message, const unsigned __int64 wparam, const __int64 lparam) Line 38
user32.dll!UserCallWinProcCheckWow(struct _ACTIVATION_CONTEXT *,__int64 (*)(struct tagWND *,unsigned int,unsigned __int64,__int64),struct HWND__ *,enum _WM_VALUE,unsigned __int64,__int64,void *,int)
user32.dll!DispatchClientMessage()

This indicates that the AppHost::Initialize call deadlocks inside CalcSnappedDimension. There's an infinite loop somewhere.

(If anyone wants to debug this in the meantime, please feel free to do so!)

@lhecker commented on GitHub (Oct 17, 2025): I checked the 3 dumps that were sent to me (Thanks all!) and all of them contained the same portion: ``` TerminalApp.dll!Pane::_CalcSnappedChildrenSizes(const bool widthOrHeight, const float fullSize) Line 2587 TerminalApp.dll!Pane::_CalcSnappedDimension(const bool widthOrHeight, const float dimension) Line 2703 [Inline Frame] TerminalApp.dll!Pane::CalcSnappedDimension(const bool) Line 2616 [Inline Frame] TerminalApp.dll!winrt::TerminalApp::implementation::TerminalTab::CalcSnappedDimension(const bool) Line 750 [Inline Frame] TerminalApp.dll!winrt::TerminalApp::implementation::TerminalPage::CalcSnappedDimension(const bool) Line 2744 [Inline Frame] TerminalApp.dll!winrt::TerminalApp::implementation::TerminalWindow::CalcSnappedDimension(const bool) Line 773 TerminalApp.dll!winrt::impl::produce<winrt::TerminalApp::implementation::TerminalWindow,winrt::TerminalApp::ITerminalWindow>::CalcSnappedDimension(bool widthOrHeight, float dimension, float * result) Line 7958 [Inline Frame] WindowsTerminal.exe!winrt::impl::consume_TerminalApp_ITerminalWindow<winrt::TerminalApp::ITerminalWindow>::CalcSnappedDimension(bool) Line 3303 [Inline Frame] WindowsTerminal.exe!AppHost::Initialize::__l2::<lambda_5>::operator()(bool &&) Line 283 [Inline Frame] WindowsTerminal.exe!std::invoke(AppHost::Initialize::__l2::<lambda_5> &) Line 1680 WindowsTerminal.exe!std::_Func_impl_no_alloc<`AppHost::Initialize'::`2'::<lambda_5>,float,bool,float>::_Do_call(bool && <_Args_0>, float && <_Args_1>) Line 882 [Inline Frame] WindowsTerminal.exe!std::_Func_class<float,bool,float>::operator()(bool <_Args_0>, float <_Args_1>) Line 926 [Inline Frame] WindowsTerminal.exe!IslandWindow::_OnGetMinMaxInfo(const unsigned __int64) Line 469 WindowsTerminal.exe!IslandWindow::MessageHandler(const unsigned int message, const unsigned __int64 wparam, const __int64 lparam) Line 488 WindowsTerminal.exe!NonClientIslandWindow::MessageHandler(const unsigned int message, const unsigned __int64 wParam, const __int64 lParam) Line 984 WindowsTerminal.exe!BaseWindow<IslandWindow>::WndProc(HWND__ * const window, const unsigned int message, const unsigned __int64 wparam, const __int64 lparam) Line 38 user32.dll!UserCallWinProcCheckWow(struct _ACTIVATION_CONTEXT *,__int64 (*)(struct tagWND *,unsigned int,unsigned __int64,__int64),struct HWND__ *,enum _WM_VALUE,unsigned __int64,__int64,void *,int) user32.dll!DispatchClientMessage() ``` This indicates that the `AppHost::Initialize` call deadlocks inside `CalcSnappedDimension`. There's an infinite loop somewhere. (If anyone wants to debug this in the meantime, please feel free to do so!)
Author
Owner

@avenmore commented on GitHub (Dec 24, 2025):

It would be so nice if this could be fixed. I have a new routine in my workflow: Open Task Manager; run batch file to start 4 local servers, less than 4 panes created then hang, kill wt.exe; repeat 2-10 times until all 4 panes created with contents running.

@avenmore commented on GitHub (Dec 24, 2025): It would be so nice if this could be fixed. I have a new routine in my workflow: Open Task Manager; run batch file to start 4 local servers, less than 4 panes created then hang, kill wt.exe; repeat 2-10 times until all 4 panes created with contents running.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#23715