To go further, I built a Python-based monitoring program (“Kickr Keepalive Tray”) to analyze the UDP traffic in real time between Zwift and the Kickr Bike.
It uses:
Npcap + Scapy to sniff all UDP packets to the Kickr Bike (192.168.1.133:30200).
Psutil to detect when ZwiftApp.exe is running.
A keep-alive thread sending a null UDP packet every 60 seconds (to avoid socket idle timeout).
A diagnostic loop logging every unique payload sent by Zwift to the bike.
A freeze alert if no payload change is detected for more than 12 minutes.
Optional Windows tray menu + toast notifications.
Log Analysis Results
• **At start:** Zwift sends regular UDP payloads to the Kickr Bike ✅
• **After ≈ 10 minutes:** UDP stream becomes silent (no incoming packets) ❌
• **Network link still alive:** keep-alive packets sent successfully every 60 s.
• **After ≈ 12 min idle:** bike tilt and resistance freeze.
• **Bluetooth or Companion modes:** continuous payload flow, no freeze.
The evidence shows that Zwift stops sending gradient/tilt updates via UDP after ~10 minutes, even though the Direct Connect socket remains open and responsive.
It’s therefore not a Wahoo firmware problem or network drop, but a change in Zwift’s DirCon handling since version 1.97.
⸻
Available Data
• Full timestamped logs (showing packet counts and freeze points)
• Network captures (Scapy PCAP) on port 30200
• Source code of the monitoring tool if Zwift engineering needs to replicate
⸻
Conclusion
Everything points to a Zwift-side issue where the Direct Connect UDP session stops transmitting gradient data after roughly 10 minutes, while other protocols (Bluetooth and Companion bridge) continue to work normally.
If a Zwift engineer could confirm whether a socket keep-alive or timeout change was introduced after 1.97, that would really help.
I had an issue yesterday where Core 2 via WiFi suddenly lost ERG mode and gone crazy. Restart of the trainer didn’t fix the issue, only a switch to bluetooth got ERG mode back to work. Is this somehow related or a different issue? It started around 15min into the training.
Today while trying to pair my KickrV6 via Direct Connect on AppleTV I was able to select my trainer, but the pairing screen was stuck on “connecting”. A switch to pair via ZCA yielded the same results.
Maybe trying to optimize something or improve part of the process. Maybe something else was being tweaked and it inadvertently affected this. I’m guessing (with nothing to back it up but wild optimism) that it’ll be fixed in next week’s release. Fortunate that there’s easy workarounds this time (as opposed to breaking sim mode over certain connection types some while back)
This is almost always the thing with software that has been through many years of updates with many different devs having made changes with various assumptions over the years etc. It’s usually an unintended regression introduced by fixing another issue. That regression was not caught in test (because who can test every combination of trainer and protocol), and then it’s found in the wild requiring a patch. That patch might introduce another regression, maybe bigger, maybe smaller, and so goes the great cycle of legacy code.
There’s been a known issues thread for three weeks now (which this post has now been moved to) that has two coded tags attached to it which means that not only is ZHQ aware of it but they’re actively working on resolving it.
Also, still experiencing wifi connect issues after the latest update, V1.101, was supposed to fix it. While the flashing between ‘connecting’ and ‘connected’ has been fixed, getting & keeping a connection still appears to be an issue. In V1.100, I’ve also experienced the gradient change issue noted by others but haven’t seen it yet in V1.101 (but only a few rides so far in this update)
For me, I am able to wifi connect but only after power cycling my wahoo kickr bike V2. Once in awhile it takes a couple of tries but seems to connect after the power cycling.
Interestingly, if I don’t power cycle the bike, it will try to wifi connect to pwr source, resistance & cadence but never registers any watts to the pedals (never gets to ‘connected’ state). Also, the controls box for kickr bike never connects & that seems to stop everything else from connecting. Upon power cycling the bike & relaunching zwift, all 4 items connect and pedal watts get registered. I also use Zwift play controllers & HRM but they connect via bluetooth over companion app. I don’t connect those items until bike is fully connected.
For now, I just add an extra 45-60 minutes before planning to ride, just to be able to connect to zwift to deal with whatever connection problems that come up.
After the 1.101 update, I had some issues establishing the initial connection. I disconnected everything, and then went through and selected CONTROLS, waited for the icon to change from Wi-Fi to LAN (I’m using LAN), then connected through that, connected everything else, and it stayed connected with each launch of Zwift ever since.
There was some weird “order of operations” thing that caught me offguard with 1.101, but at least Connecting… Connected… Connecting… Connected…, etc is gone.
Once I made Zwift happy with how I did it, it persisted. Maybe try that, and see if it works for you.
Okay, nevermind, not fixed for me. Had the worst one yet this morning.
Zwift said it was connected, no flashing - but no power output. I barely got connected (through ANT+ - bluetooth I couldn’t find the trainer on bluetooth) before my race.
Hiding the symptom, if that’s what was done, made it worse for me. I didn’t know to troubleshoot until I got on the bike to get ready to race.
Never posted here before but 3-4 weeks of constant connection issues has me really frustrated.
Kickr Bike V2. It seemed like Wi-Fi connection would kind of work despite the flashing up until about a week ago. Now, I can’t connect via Wi-Fi at all. It just stays at “connecting” the whole time. And if I connect via Bluetooth, there is a mindblowing lag like I’ve never witnessed before with my old Saris H3 or Kickr Core. From a dead stop, if I start sprinting, it takes 3.5 seconds before my avatar will lift his leg and start moving. Steering doesn’t respond and then a few seconds later it turns wildly and dumps me in the gutter. Trying to drop a power up is completely unresponsive and I need to smash the button a dozen times before it does anything. It’s not really possible to race like this.
I stopped using Wi-Fi dircon due to the issues I was having - not connecting or losing resistance if it did connect - 1.101 did not solve the issues.
I started using Bluetooth however now with Bluetooth I am getting a 2-3 second lag when steering or pressing the buttons for rear view and power ups….
Basically it’s becoming unusable after being rock solid for close to 2 years. What have Zwift changed? Reading above it is defo a Zwift issue (great job @Antoine_GOUGEON on the diagnosing).
I´m using a wahoo kickr v5 with dir con through ethernet and the other day (a week ago or so) in the middle on stage 2 of FRR tour the connection went down completely ruin my race. I can only reconnect using the wifi.