Godot Version
4.6.2
4.6
(potentially older versions too, not tried out by me)
Solved — sharing for anyone who ends up here after a full day of searching like I did
Sorry for the long post. I already found the solution, but I went through an entire day of debugging this with no useful results online, so I wanted to document the full experience in case someone else ends up in the same situation.
My Godot installation stopped printing to the Output panel. Like you can see in my _ready function, these three messages were nowhere to be found in the editor:
func _ready() -> void:
print("TEST OUTPUT")
push_error("TEST ERROR")
push_warning("TEST WARNING")
I tried the following before finding the answer:
- Fully deleting my Godot folder in
%APPDATA% - Making sure the correct filters were enabled in the
Outputtab at the bottom - Changing the port and IP address in Editor > Network > Debug settings
- Downloading an older version of Godot (which I knew had worked before)
- Turning off my firewall and allowing the Godot executable in Malwarebytes, which I also fully disabled. It had worked fine alongside Malwarebytes for over 2 years prior.
- Rebooting, running Godot as Administrator
All attempts ended in the same result. The Output panel only ever showed engine-level messages. Right clicking, opening or closing windows, or changing focus would add entries like this:
Accessibility: window 32 adapter activated.
Accessibility: window 32 adapter initial update completed.
Accessibility: window 32 adapter destroyed.
EditorSettings: Save OK!
But nothing from my own scripts. Ever.
The confusing part was that running Godot through my terminal using .\godot.exe worked perfectly:
TEST OUTPUT
ERROR: TEST ERROR
at: push_error (core/variant/variant_utility.cpp:1024)
GDScript backtrace (most recent call first):
[0] _ready (res://scenes/main_menu.gd:13)
WARNING: TEST WARNING
at: push_warning (core/variant/variant_utility.cpp:1034)
GDScript backtrace (most recent call first):
[0] _ready (res://scenes/main_menu.gd:14)
The game itself ran fine. Buttons worked. Logic executed. Only the editor Output panel was completely silent. And because errors were never surfaced in the editor, they also didn’t stop execution the way they normally would — making debugging feel completely blind.
How to confirm this is your problem
Run Godot from your terminal with the --verbose flag:
.\godot.exe --verbose
Then search the output for this line:
Failed to bind socket. Error: 4.
If you see it — especially multiple times during startup — that is your issue. Godot uses a local socket to relay output from the running game process back to the editor’s Output panel. When that socket fails to bind, the editor receives nothing. The game still runs, and output still reaches stdout (which is why the terminal works), but the editor stays completely silent.
Full list of symptoms:
print(),push_error(),push_warning()produce no output in the editor- The Output panel only shows engine-level messages
- Running Godot via terminal shows output correctly
- Errors don’t halt execution the way they should in the editor
- The problem persists across Godot versions, full reinstalls, and reboots
netstat -ano | findstr :6007shows nothing — the port is not occupied
That last point is what made this so hard to track down. The port wasn’t blocked or occupied. The socket layer itself was broken.
Solution
The culprit is a corrupted Windows Sockets (Winsock) layer, most likely introduced by security software — in my case Malwarebytes — that hooks into the Windows network stack. This corruption prevents Godot from binding any local debug socket, even on completely free ports.
The fix takes about 2 minutes:
- Open PowerShell or Command Prompt as Administrator
- Run these two commands:
netsh winsock reset
netsh int ipv4 reset
- Reboot your PC
- Open Godot — output will work again
I hope this post saves someone the full day I lost to it.