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.
🔵 MediumImage Needed()Browser showing ERR_CONNECTION_RESET error when trying to access http://localhost - with URL bar showing 'localhost' and error message clearly visible
📄 Filename:
♿ Alt Text:
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.
🔵 MediumImage Needed()Windows Update history page showing KB5066835 update entry with October 14, 2025 date highlighted
📄 Filename:
♿ Alt Text:
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
🔵 MediumImage Needed()Windows Update screen showing 'Check for updates' button and 'Your device is up to date' message (with note: Restart may apply KIR)
📄 Filename:
♿ Alt Text:
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
🔵 MediumImage Needed()Settings → Installed Updates page with KB5066835 selected and 'Uninstall' button visible and highlighted
📄 Filename:
♿ Alt Text:
🔵 MediumImage Needed()Command Prompt (Administrator) showing 'wusa /uninstall /kb:5066835' command executed with success message
📄 Filename:
♿ Alt Text:
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
🔵 MediumImage Needed()Registry Editor showing HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters with EnableHttp2Tls and EnableHttp2Cleartext DWORD values set to 0, both entries highlighted
📄 Filename:
♿ Alt Text:
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.
🔵 MediumImage Needed()Browser successfully loading localhost page with 'It works!' or default IIS welcome page visible - showing connection success with green padlock or connection indicator
📄 Filename:
♿ Alt Text:
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.