Additional SQL Server features and topics not covered by specific categories
You can try following steps to test:
- Run the bare loopback test: Start any listener not related to Power BI and test it:
$l = [System.Net.Sockets.TcpListener]8765; $l.Start(); Write-Host "listening"; Read-Host
then in another window:
Test-NetConnection 127.0.0.1 -Port 8765
If this fails too, the problem is your Windows TCP loopback stack, not Power BI. If it succeeds, the problem is specific to how Power BI/msmdsrv bind or talk to each other.
- Check what msmdsrv is actually bound to.: Your symptom (listener confirmed, but connect times out) is exactly what you see when the client and server use different loopback addresses (127.0.0.1 vs ::1).
netstat -ano | findstr <port>
Confirm the PID matches msmdsrv and note whether it's 127.0.0.1, 0.0.0.0, or [::1]. This is a factual check that will tell you something real.
- Check the excluded port range: This is a known, documented cause of "listener exists but can't connect" on Windows, and it fits your "started after an update" note:
netsh int ipv4 show excludedportrange protocol=tcp
If msmdsrv's random port falls inside a reserved range, the connection fails silently. Reservations from Hyper-V/WSL2/Docker/Fast Startup get re-triggered by updates.
- A timeout means dropped packets, not refusal: A refused connection returns immediately and a timeout means the SYN is going somewhere with no response. That genuinely narrows it toward a binding mismatch or something dropping the packet, and away from "nothing is listening."
Your symptom localizes the failure to the loopback connection path, and the tests above will identify which layer there is an issue.