Please fix the Apple Watch heart rate monitoring

For the past two months or so I have been using a Wahoo Kickr Bike with with an Apple TV and use my Apple Watch for heart rate monitoring. It has been a terrible experience. I pretty much always get it to run eventually, but troubleshooting adds 5-10 minutes to my workout. That’s too much. It often requires a reboot of Watch or sometimes Phone. I understand that Apple’s poor implementation makes this a hard engineering problem to solve (BT device limits on the Apple TV, Apple Watch limitations). But Zwift makes all of this much harder with a lack of transparency that makes debugging this a blind trial and error exercise.

And yes, I did read the best practices web page and the Apple Watch Issues Article. I did cross check Wifi networks, monitored Wifi packet drop rates (almost zero, < 3 meter from the closest AP with a backup within 5 meters, measured packet loss at the AP is under 10E-4, all devices are running on a network that allows direct connections between devices) and made sure there are no Bluetooth issues.

First, there are a number of different failure modes:

  1. Zwift shows watch is connected, but no data. This is the most common failure mode. I am starting Zwift on Apple TV, start the companion app on the iPhone and they connect after a few seconds. Zwift heart rate app auto-launched on the Apple Watch. However Apple Watch app shows not connected (“unpaired” IIRC) and Zwift App shows no data.

  2. Apple Watch App exits, Zwift shows a static heartbeat. This is bad as I often don’t notice immediately. In a recent run, I was running for a few minutes with a constant 69 bpm heartbeat.

  3. Zwift Companion fails to connect to Zwift. Rare and usually is fixed by restarting all parts (Apple TV App, Watch App, iPhone Companion App).

If I run into these issues I usually try in this order:

  1. Restart iPhone Companion App only.
  2. Stop Apple Watch App, then restart iPhone Companion App.
  3. Quit all three apps, and restart them (Apple TV first, then iPhone)
  4. Reboot Apple Watch, then do (3)
  5. Reboot iPhone and Apple Watch, then do (3)

Usually one of these fixes it, but going through the list takes a fair amount of time.

What can Zwift do better? Ideally, make this more stable and have it work out of the box. If that is hard, it would help to at least give system debug information that allows us to troubleshoot this more easily. Specifically:

  1. Can you show me IP addresses of each component, and at what IP addresses they try to contact each other.
  2. Can you show what has connectivity to what other devices. If there is a connection error, what is the error.
  3. If heart rate is no longer received, throw an alert and give me an option to pause my ride so I can fix it.

And as a bonus, please fix the bug that Zwift sometimes loses sound on the Apple TV when re-started. I sometimes have to chose between no heart rate or no sound as one of the two isn’t working.


Just to play Devil’s advocate:

Why do you assume it is Zwift’s issue? Apple likes closed systems and do not like to share anything. Apple may intentionally make it difficult.

Also, your setup relies on BT…uhmm…welll…yuck (IMO). If I want to use a TV I will use a laptop and hdmi to connect the tv. All via Ant+ which, IME, is much more reliable. In fact, not even close.

I had the same issues with ATV as you. Always a PITA to connect.

1 Like

If Zwift can’t implement it properly–and they haven’t–they should not release the feature, or they should fix it, or at the very least they should stop suggesting it’s compatible. That’s on Zwift.

Guido, please hit the Vote button at the top of Apple Watch Unpaired Bug - #46 by L_D7, which is the most active thread on this issue. It’s a ridiculous situation and maybe someday Zwift will make an effort and fix it.

@jimmy_james Thanks, just did that.

@chris_benten1 Agreed that Apple’s Apple TV and Watch platform software is pretty poor. That said, if Zwift keeps recording a heart rate despite the Watch not sending any data for 5 minutes, that is 100% a Zwift issue. And Zwift showing an Apple Watch as “connected” while their app is not even running on the Apple Watch is also 100% a Zwift issue. Both issues could be trivially fixed by time stamping information on the watch and checking the time stamp in Zwift. If it’s more than 30 seconds old, pop up a friendly “Error: Apple Watch Disconnected” message.

If you develop software, you can’t guarantee that it works. But showing incorrect information about whether it works or not that is trivially fixable is just crappy software design.