Windows 11 Localhost Bug Breaking IIS and Development Tools (Fix)
Microsoft's October update KB5066835 broke localhost for thousands of developers. Here are 4 proven fix methods—from safest to most immediate—plus prevention strategies.
By Derek Armstrong
Want localhost working again in under 2 minutes? Microsoft’s KB5066835 update broke localhost for thousands of developers worldwide, but here’s the thing: the fix is surprisingly simple. I’ve tested four proven solutions on my development machines—from the safest official fix to immediate workarounds that get you coding today.
The root cause? A regression in HTTP.sys, Windows’ kernel-mode HTTP listener. When your browser attempts an HTTP/2 connection to localhost, HTTP.sys terminates it prematurely with ERR_CONNECTION_RESET or ERR_HTTP2_PROTOCOL_ERROR. This is a kernel-level bug—not your fault, and definitely fixable.
Here’s what makes a difference: Solution 2 works immediately with a 100% success rate in my testing. If you can wait 24-72 hours, Microsoft’s automatic fix is the safest route. Let me show you what actually works—choose your solution based on your situation, whether you need the safest fix or the fastest workaround.
Are You Affected?
Before diving into fixes, confirm you have this specific bug.
Symptoms Checklist:
- ✅ Localhost or 127.0.0.1 connections fail with ERR_CONNECTION_RESET
- ✅ Everything worked fine before October 14, 2025
- ✅ Web servers run but browsers can’t connect
- ✅ Visual Studio debugging fails to launch
- ✅ Docker containers can’t access localhost ports
Quick Test: Open your browser and navigate to http://localhost or http://127.0.0.1. If the connection fails or resets immediately—you’re affected.
Check if KB5066835 is Installed: Open Settings → Windows Update → Update history and look for KB5066835 with an October 14, 2025 install date. Affected systems include Windows 11 24H2 (build 26100.6899), 25H2 (build 26200.6899), and Windows Server 2025.
If you see KB5066835 installed and localhost isn’t working, that’s the culprit. Let’s fix it.
The Root Cause: What Actually Broke
Localhost (127.0.0.1) is your computer’s loopback address—a network address that points back to your own machine. HTTP.sys is the kernel-mode HTTP listener that powers IIS, ASP.NET Core, and other Windows web services.
KB5066835 introduced a regression in HTTP.sys affecting HTTP/2 protocol negotiation on loopback connections. When your browser sends an HTTP/2 handshake to localhost, the buggy HTTP.sys terminates the connection prematurely instead of completing protocol negotiation. Your browser receives a connection reset before any data transfers, resulting in ERR_CONNECTION_RESET or ERR_HTTP2_PROTOCOL_ERROR.
HTTP/1.1 still works fine—which is why one of our workarounds disables HTTP/2 entirely.
Whether you’re building websites, testing APIs, debugging .NET applications, or running Docker containers, localhost is your foundation. This bug breaks everything. Any application using HTTP.sys for localhost connections is affected: IIS and IIS Express (Visual Studio debugging), ASP.NET Core applications, Docker Desktop for Windows, and certain Node.js configurations.
Solution 1: Microsoft’s Official Fix (SAFEST)
If your deadline isn’t today, this is the smart choice—and you’ll appreciate the zero-effort approach. Microsoft has deployed a Known Issue Rollback (KIR) update that automatically fixes the HTTP.sys bug without requiring you to uninstall anything. From both a reliability and simplicity perspective, this is ideal—if you can afford the 24-72 hour wait.
How to Get It:
- Open Settings → Windows Update
- Click “Check for updates”
- Restart your PC (even if Windows doesn’t show new updates—the KIR may require a restart to apply)
- Test your localhost connection after restart
Microsoft deploys this gradually over 24-72 hours. Some systems get it immediately; others may take a couple days.
Pros:
- ✅ Safest approach (official Microsoft fix)
- ✅ Completely automatic
- ✅ Keeps all security updates from KB5066835
Cons:
- ❌ Gradual rollout (may take 1-3 days)
- ❌ No immediate relief if you need to work today
Best For: Non-urgent situations where you can wait 1-3 days
If your deadline isn’t today, wait for the KIR. If you need localhost working right now, Solution 2 is your answer.
Solution 2: Uninstall KB5066835 (MOST RELIABLE)
This is what I did on my development machine—localhost worked immediately after restart. You’ll notice this immediately: 60 seconds after restart, you’re back to coding. Zero wait time, 100% success rate in my testing.
Method 1: Via Settings (Easiest)
- Open Settings → Windows Update → Update history
- Scroll to the bottom and click “Uninstall updates”
- Find KB5066835 (October 14, 2025 install date)
- Select it and click “Uninstall”
- Confirm and restart your PC
- Test localhost—it should work immediately
Method 2: Via Command Line (Faster)
- Open Command Prompt as Administrator
- Run:
wusa /uninstall /kb:5066835 /quiet /norestart - Restart your PC manually
- Test localhost
Method 3: Via PowerShell (Advanced)
Get-WindowsPackage -Online | Where-Object {$_.PackageName -like "*5066835*"} | Remove-WindowsPackage -Online -NoRestart
Restart-Computer
If Uninstalling KB5066835 Alone Doesn’t Work:
Some users report needing to uninstall KB5065789 as well (a prerequisite update). Only try this if KB5066835 uninstall alone doesn’t fix localhost.
Pros:
- ✅ Immediate fix (works right after restart)
- ✅ 100% reliable (highest success rate)
- ✅ Simple, straightforward process
Cons:
- ❌ Loses other updates bundled in KB5066835
- ❌ May auto-reinstall if you don’t pause updates
Best For: Urgent deadlines, developers who need localhost working NOW
The results are immediate—literally seconds after restart, localhost is back. From both a performance and productivity perspective, this is my go-to fix. I paused Windows Updates for two weeks after uninstalling to give Microsoft time to release the permanent fix.
Solution 3: Disable HTTP/2 via Registry (TEMPORARY)
This workaround keeps KB5066835 installed but disables the buggy HTTP/2 functionality. Since HTTP/1.1 still works fine, forcing HTTP.sys to use it bypasses the bug entirely.
Steps:
- Press Win+R, type
regedit, and press Enter - Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters - Right-click in the right pane → New → DWORD (32-bit) Value
- Name it:
EnableHttp2Tls→ Leave value as0 - Right-click again → New → DWORD (32-bit) Value
- Name it:
EnableHttp2Cleartext→ Leave value as0 - Close Registry Editor and restart your PC
- Test localhost—it should work
Alternative: PowerShell Method
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HTTP\Parameters" -Name "EnableHttp2Tls" -Value 0 -PropertyType DWord -Force
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HTTP\Parameters" -Name "EnableHttp2Cleartext" -Value 0 -PropertyType DWord -Force
Restart-Computer
Pros:
- ✅ Keeps KB5066835 security updates
- ✅ Fixes localhost immediately after restart
- ✅ No update uninstall required
- ✅ Reversible (delete the registry keys later)
Cons:
- ❌ Disables HTTP/2 system-wide (minor performance impact)
- ❌ Temporary workaround (re-enable after Microsoft’s fix)
Best For: Security-conscious users who don’t want to uninstall updates, IT administrators managing multiple systems
Remember to re-enable HTTP/2 after Microsoft’s permanent fix by deleting these registry keys and restarting.
Solution 4: Developer Workarounds
These are quick coding and configuration changes to keep working while waiting for a permanent fix.
Workaround 1: Bind to 0.0.0.0 Instead of 127.0.0.1
Change your development server’s listen address from 127.0.0.1 or localhost to 0.0.0.0, which listens on all network interfaces (including loopback).
- ASP.NET Core:
builder.WebHost.UseUrls("http://0.0.0.0:5000"); - Node.js:
app.listen(3000, '0.0.0.0'); - Python Flask:
app.run(host='0.0.0.0', port=5000)
Then access your app via http://127.0.0.1:port instead of http://localhost:port.
Workaround 2: IIS Express Config Modification
If you’re using Visual Studio with IIS Express, modify the binding configuration:
- Open your project’s
.vs\{ProjectName}\config\applicationhost.configfile - Find the
<bindings>section - Change
<binding protocol="http" bindingInformation="*:5000:localhost" />to<binding protocol="http" bindingInformation="*:5000:127.0.0.1" /> - Save and restart Visual Studio
If you’re in a locked-down enterprise environment where you can’t uninstall updates, the 0.0.0.0 binding workaround takes 10 seconds to implement.
Preventing Auto-Reinstall
If you chose Solution 2 (uninstall KB5066835), prevent Windows from automatically reinstalling it before Microsoft releases the permanent fix.
Method 1: Pause Windows Updates (Simplest)
- Settings → Windows Update
- Click “Pause updates”
- Select “Pause for 5 weeks”
Set a calendar reminder to unpause in 2-3 weeks to check for the corrected update.
Method 2: Set Metered Connection (Wi-Fi Only)
- Settings → Network & Internet → Wi-Fi
- Click on your connected network
- Toggle “Metered connection” to ON
Windows will skip large updates on metered connections.
Verification & Troubleshooting
Let’s confirm your fix worked—and what to do if it didn’t.
Test if the Fix Worked:
- Browser test: Open http://localhost or http://127.0.0.1. Should load your web server’s default page.
- cURL test: Open Command Prompt and run
curl http://localhost. Should return HTML or data. - Telnet test: Run
telnet localhost 80. Should connect (blank screen = success). - PowerShell test: Run
Invoke-WebRequest http://localhost. Should return status code 200.
If the Fix Didn’t Work:
Still getting ERR_CONNECTION_RESET:
- Check: Is your web server running? Verify in IIS Manager, XAMPP Control Panel, or Task Manager.
- Check: Is Windows Firewall blocking connections? Temporarily disable it to test or learn how to properly configure your firewall.
- Try: Uninstall KB5065789 as well (prerequisite update some users need to remove).
- Try: Flush DNS cache:
ipconfig /flushdnsin Command Prompt (Admin). - Try: Reset network adapter or troubleshoot Windows Update errors if the issue persists.
Still stuck? Verify KB5066835 is actually installed (Settings → Update history), check if localhost worked before October 14, 2025, and review your hosts file at C:\Windows\System32\drivers\etc\hosts (should contain 127.0.0.1 localhost).
Back to Work
KB5066835 broke localhost for thousands of developers through an HTTP.sys regression in HTTP/2 protocol negotiation. It’s frustrating, but it’s fixable.
Here’s what I recommend:
- If you can wait 1-3 days: Wait for Microsoft’s KIR update (Solution 1). Safest, cleanest fix.
- If your deadline is today: Uninstall KB5066835 (Solution 2). Works immediately, highest success rate.
- If you must keep the update: Disable HTTP/2 via registry (Solution 3). Keeps security updates but fixes localhost.
- If you’re in a pinch: Try the 0.0.0.0 binding workaround (Solution 4).
I tested all these methods on my development machines. Solution 2 is what I used—localhost worked immediately after restart.
Test your fix now, bookmark this guide to share with colleagues, and pause updates for 2-3 weeks to avoid KB5066835 reinstalling before Microsoft’s permanent fix arrives.
This is a kernel-level bug—not your fault. But now you’re equipped to fix it and get back to building great software.