You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Fatal Bug: MinGit on Busybox panics when pushing #6107
I was not able to find an open or closed issue matching what I'm seeing
Git for Windows version
~> git version --build-options
git version 2.53.0.windows.1
cpu: x86_64
built from commit: a5512bdee37ed7142c233d21e2d347ffc4860ff3
sizeof-long: 4
sizeof-size_t: 8
shell-path: D:/git-sdk-64-build-installers/usr/bin/sh
rust: disabled
feature: fsmonitor--daemon
gettext: enabled
libcurl: 8.18.0
OpenSSL: OpenSSL 3.5.5 27 Jan 2026
zlib: 1.3.1
SHA-1: SHA1_DC
SHA-256: SHA256_BLK
default-ref-format: files
default-hash: sha1
Windows version
Windows 10
Windows CPU architecture
x86_64 (64-bit)
Additional Windows version information
Microsoft Windows [Version 10.0.19044.6937]
Options set during installation
I use the zip archive so no `install-options.txt` file
Other interesting things
~> git push
-c: applet not found
bash: can't create /dev/tty: nonexistent directoryerror: failed to execute prompt script (exit code 1)fatal: could not read Username for 'https://github.com': No such file or directory
Terminal/shell
nushell & cmd & pwsh all exist this issue
Commands that trigger the issue
Just simply exec:
git push
~> git push
-c: applet not found
bash: can't create /dev/tty: nonexistent directoryerror: failed to execute prompt script (exit code 1)fatal: could not read Username for 'https://github.com': No such file or directory
Expected behaviour
Success
Actual behaviour
-c: applet not found
bash: can't create /dev/tty: nonexistent directoryerror: failed to execute prompt script (exit code 1)fatal: could not read Username for 'https://github.com': No such file or directory
@emmettlu Two notes. First of all, BusyBox based variant of MinGit is still experimental, and I'm really, really close to dropping it altogether because it's just not robust and it won't be robust ever because the BusyBox-w32 maintainer does not even accept CI builds, which reduced my confidence in that project rather dramatically.
Second, /dev/tty looks like it's asking for username and password. How did that work before? Are you sure that nothing changed in your setup? And that the credential helper, for example, is maybe no longer configured?
bash: can't create /dev/tty: nonexistent directory comes from the terminal prompt fallback that runs bash -c 'cat >/dev/tty && read -r line </dev/tty && echo "$line"' when Git decides it has no usable console. I can reproduce that path with 2.55.0.5 by running git ls-remote https://github.com/<private repo> with no credential helper and stdin not attached to a console. BusyBox's bash applet has no /dev/tty, so the prompt fails. That is not addressed by build-extra#746 and needs a separate look at compat/terminal.c.
Correction to my earlier comment: current BusyBox-w32 does support /dev/tty (mapped to the CON device, upstream commit rmyorston/busybox-w32@f53dbcb8 from 2025-11-10). The error in this report comes from the BusyBox build that MinGit shipped at the time.
MinGit-2.53.0-busybox still contained mingw-w64-x86_64-busybox 1.34.0.19688, built 2022-09-19. Its bash -c 'echo hi >/dev/tty' fails with can't create /dev/tty: nonexistent directory even with a console attached, which matches the trace above.
MinGit-2.55.0.5-busybox ships BusyBox 1.38.0 built 2026-06-27. The same command succeeds, and git credential fill with no credential helper reaches a working prompt from cmd or PowerShell.
So the /dev/tty part of this report is resolved by the BusyBox update that went out with 2.55. The -c: applet not found part is addressed by git-for-windows/build-extra#746. @emmettlu, could you retry with 2.55.0.5 or newer? If the prompt still fails, the remaining question is why CONIN$ could not be opened in your setup, which would mean git-remote-https ran without a console.
That would increase the size of the .zip file substantially, something I'm not willing to do. MinGit is intended to be bundled with 3rd-party applications, hence the size is the real motivator for MinGit itself, and increasing its size isn't something we're going to do without really good reasons.
2. BusyBox's bash applet has no /dev/tty, so the prompt fails. That is not addressed by build-extra#746 and needs a separate look at compat/terminal.c.
Seeing as /dev/tty is required for interactive input, something MinGit distinctly does not support in its goal of reducing the size, I see this as a report in search of a bug.
Seriously, I do understand that people want to use MinGit interactively. They like the small size. But it's actually not meant for them. And trying to burden me with supporting a use case that I have specifically excluded from MinGit isn't something I find particularly kind; I am already an overworked open source maintainer, why add to that burden (who does something like that)?
So the /dev/tty part of this report is resolved by the BusyBox update that went out with 2.55
Great, so now, by Hyrum's Law I'm stuck with keeping MinGit usable as an interactive component? No. I decline. Absolutely not. If it happens to work for you right now, fine. But don't expect this to work forever. If you want to use Git for Windows interactively, use the Portable Git version, or fix problems you encounter with MinGit on your side, but don't open issues about interactive MinGit usage in this here bug tracker. Reading all this was the opposite of how I wanted to start my day.
Activity
[-]Fatal Bug: MinGit for Busybox paniced when pushing[/-][+]Fatal Bug: MinGit on `Busybox` panics when pushing[/+]emmettlu commentedon Feb 22, 2026
Note: No this issue for MinGit on
Busyboxthat version 2.43 and earlierdscho commentedon Feb 22, 2026
@emmettlu Two notes. First of all, BusyBox based variant of MinGit is still experimental, and I'm really, really close to dropping it altogether because it's just not robust and it won't be robust ever because the BusyBox-w32 maintainer does not even accept CI builds, which reduced my confidence in that project rather dramatically.
Second,
/dev/ttylooks like it's asking for username and password. How did that work before? Are you sure that nothing changed in your setup? And that the credential helper, for example, is maybe no longer configured?mingit: ship BusyBox as sh.exe in the BusyBox-based MinGit
zcsizmadia commentedon Sep 17, 2026
Two separate problems are visible in the report.
-c: applet not foundis the same root cause as ! aliases not working in MinGit busybox builds #5184 and Git clone from local folder broken? #5469: the BusyBox-based MinGit ships nosh.exe,git_shell_path()falls back to the path ofbusybox.exeitself, and BusyBox reads-cas an applet name. mingit: ship BusyBox as sh.exe in the BusyBox-based MinGit build-extra#746 ships a copy ofbusybox.exeasmingw64/bin/sh.exe, which fixes this part. I verified it against the extractedMinGit-2.55.0.5-busybox-64-bit.zipwith a PATH restricted to the Windows directories and MinGit'scmddirectory.bash: can't create /dev/tty: nonexistent directorycomes from the terminal prompt fallback that runsbash -c 'cat >/dev/tty && read -r line </dev/tty && echo "$line"'when Git decides it has no usable console. I can reproduce that path with 2.55.0.5 by runninggit ls-remote https://github.com/<private repo>with no credential helper and stdin not attached to a console. BusyBox'sbashapplet has no/dev/tty, so the prompt fails. That is not addressed by build-extra#746 and needs a separate look atcompat/terminal.c.mingit: ship BusyBox as sh.exe in the BusyBox-based MinGit
zcsizmadia commentedon Sep 17, 2026
Correction to my earlier comment: current BusyBox-w32 does support
/dev/tty(mapped to theCONdevice, upstream commit rmyorston/busybox-w32@f53dbcb8 from 2025-11-10). The error in this report comes from the BusyBox build that MinGit shipped at the time.mingw-w64-x86_64-busybox 1.34.0.19688, built 2022-09-19. Itsbash -c 'echo hi >/dev/tty'fails withcan't create /dev/tty: nonexistent directoryeven with a console attached, which matches the trace above.git credential fillwith no credential helper reaches a working prompt from cmd or PowerShell.So the
/dev/ttypart of this report is resolved by the BusyBox update that went out with 2.55. The-c: applet not foundpart is addressed by git-for-windows/build-extra#746. @emmettlu, could you retry with 2.55.0.5 or newer? If the prompt still fails, the remaining question is whyCONIN$could not be opened in your setup, which would mean git-remote-https ran without a console.dscho commentedon Sep 17, 2026
That would increase the size of the
.zipfile substantially, something I'm not willing to do. MinGit is intended to be bundled with 3rd-party applications, hence the size is the real motivator for MinGit itself, and increasing its size isn't something we're going to do without really good reasons.Seeing as
/dev/ttyis required for interactive input, something MinGit distinctly does not support in its goal of reducing the size, I see this as a report in search of a bug.Seriously, I do understand that people want to use MinGit interactively. They like the small size. But it's actually not meant for them. And trying to burden me with supporting a use case that I have specifically excluded from MinGit isn't something I find particularly kind; I am already an overworked open source maintainer, why add to that burden (who does something like that)?
Great, so now, by Hyrum's Law I'm stuck with keeping MinGit usable as an interactive component? No. I decline. Absolutely not. If it happens to work for you right now, fine. But don't expect this to work forever. If you want to use Git for Windows interactively, use the Portable Git version, or fix problems you encounter with MinGit on your side, but don't open issues about interactive MinGit usage in this here bug tracker. Reading all this was the opposite of how I wanted to start my day.