I’ve done all the normal investigations, but am now drawing blanks on how to connect my ZwiftHub to my Windows PC via BT. It was working this time yesterday, and now… it’s not. I don’t believe any of the Zwift apps did any updates, so I can’t fingerpoint.
My desktop PC is running Windows 11, and has the latest Zwift client installed. Checking that no other devices have bluetooth enabled, I observe that the ZwiftHub light is blinking blue (waiting for a connection). I fire up the Zwift App on my Windows machine, and get to the connection screen, where it “sees” my ZwiftHub… but then quickly turns to “No Connection”. The ZwiftHub light is showing solid blue (connected). When I spin the hub, it’s not showing any signs of life on the Zwift App. I shut the app down, and the ZwiftHub light returns to a blinking blue light (waiting for connection). The Hub is not paired with my PC directly (I let Zwift App do this). And my phone and all other BT enabled devices are turned off, or have BT disabled.
When I then turn on my phone, and fire up the Zwift App on there (not the companion), it finds and connects to the Hub perfectly… and I can complete a session (albeit in a sweaty mess at the end!). So why won’t it connect to my PC… was working 24h ago, and have done full power cycles on all equipment.
I do see the following in the Zwift App log file, which might be a breadcrumb:
[13:21:52] PROFILE SAVED
[13:21:52] Process Upcoming Workingout from 0, workout count: 0, outcome: 0
[13:21:52] m_bDraftLockFixEnabled: OFF (from retrieved feature-flag)
[13:21:52] m_bPackDynamics25CollisionPushBackRemoval: ON (from retrieved feature-flag)
[13:21:52] m_bDefaultRubberbanding: OFF (from retrieved feature-flag)
[13:21:52] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:21:52] [INFO] Auxiliary Controller started
[13:21:52] NETWORK:error (6) sending player state
[13:21:52] NETWORK:error (6) sending player state
[13:21:52] NETWORK:error (6) sending player state
[13:21:53] NETWORK:GroupEvents: Success: Queried active group events -- Count=200.
[13:21:53] NETWORK:error (6) sending player state
[13:21:53] NETWORK:error (6) sending player state
[13:21:53] path C:\Users\jonat\OneDrive\Documents\Zwift\Workouts\2350427\workouts.files size 73
[13:21:53] CloudSync ---UploadToCloud OK workouts.files
[13:21:54] NETWORK:error (6) sending player state
[13:21:54] FPS 59.88, 3101, 14640, -2099
[13:21:55] FB resize: 2560 x 1080
[13:21:55] resize: 2560 x 1080
[13:21:55] NETWORK:error (6) sending player state
[13:21:56] NETWORK:error (6) sending player state
[13:21:57] [ZWATCHDOG]: GameFlowState Pairing
[13:21:57] GPU DEPRECATION INCOMING VENDOR, RENDERER: NVIDIA CorporationNVIDIA GeForce RTX 3060 Ti/PCIe/SSE2
[13:21:57] INFO LEVEL: Queuing high volume analytics event: Deprecated GPU Message
[13:21:57] PairingScreen CTOR start
[13:21:57] BLE initialization
[13:21:57] BLE : Loaded DLL BleWin10Lib_V2.dll
[13:21:57] USBDeviceManager initialization
[13:21:57] Pairing screen interface initialization
[13:21:57] BLE : Native BLE - Bluetooth Radio Found.
[13:21:57] BLE : Native BLE - Bluetooth Radio is On.
[13:21:57] Sport: Cycling
[13:21:57] PairingScreen CTOR end
[13:21:57] [INFO] LAN Exercise Device: Start scanning
[13:21:57] BLE : Starting Native BLE search
[13:21:57] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:21:57] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:21:57] NETWORK:error (6) sending player state
[13:21:57] Starting critical power curve search job (71244511) mTimeStamp = 10.00800 m_lastSearchTime = 0.00000 calculating=false
[13:21:58] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:21:58] NETWORK:error (6) sending player state
[13:21:59] NETWORK:error (6) sending player state
[13:22:00] NETWORK:error (6) sending player state
[13:22:01] NETWORK:error (6) sending player state
[13:22:02] NETWORK:error (6) sending player state
[13:22:02] FPS 59.88, 3101, 14640, -2099
[13:22:03] "Zwift Hub A235" adding component type: 6 (BLE)
[13:22:03] "Zwift Hub A235" adding component type: 1 (BLE)
[13:22:03] "Zwift Hub A235" adding component type: 4 (BLE)
[13:22:03] Zwift Hub A235 configured for new FTMS indoor bike trainer implementation (v3).
[13:22:03] "Zwift Hub A235" adding component type: 8 (BLE)
[13:22:03] "Zwift Hub A235" adding component type: 2 (BLE)
[13:22:03] "Zwift Hub A235" adding component type: 0 (BLE)
[13:22:03] "Zwift Hub A235" adding component type: 7 (BLE)
[13:22:03] BLE : PairingDialogConfirm! deviceID = 377620940, component 6
[13:22:03] Device List:
[13:22:03] ==========================================================
[13:22:03] Cadence: Zwift Hub A235 (0x168209CC) [BLE]
[13:22:03] Controllable Trainer: Zwift Hub A235 (0x168209CC) [BLE]
[13:22:03] Power: Zwift Hub A235 (0x168209CC) [BLE]
[13:22:03] ==========================================================
[13:22:03] NETWORK:error (6) sending player state
[13:22:03] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:03] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:04] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:04] NETWORK:error (6) sending player state
[13:22:05] NETWORK:error (6) sending player state
[13:22:06] NETWORK:error (6) sending player state
[13:22:07] NETWORK:error (6) sending player state
[13:22:07] Starting critical power curve search job (71254544) mTimeStamp = 20.04101 m_lastSearchTime = 10.02400 calculating=false
[13:22:08] NETWORK:error (6) sending player state
[13:22:09] NETWORK:error (6) sending player state
[13:22:09] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:09] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:10] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:10] NETWORK:error (6) sending player state
[13:22:10] FPS 60.12, 3101, 14640, -2099
[13:22:11] NETWORK:error (6) sending player state
[13:22:12] NETWORK:error (6) sending player state
[13:22:13] NETWORK:error (6) sending player state
[13:22:14] NETWORK:error (6) sending player state
[13:22:15] NETWORK:error (6) sending player state
[13:22:15] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:15] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:16] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:16] NETWORK:error (6) sending player state
[13:22:17] NETWORK:error (6) sending player state
[13:22:17] Starting critical power curve search job (71264578) mTimeStamp = 30.07507 m_lastSearchTime = 20.05701 calculating=false
[13:22:18] NETWORK:error (6) sending player state
[13:22:18] FPS 60.00, 3101, 14640, -2099
[13:22:19] NETWORK:error (6) sending player state
[13:22:20] NETWORK:error (6) sending player state
[13:22:21] NETWORK:error (6) sending player state
[13:22:21] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:21] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:22] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:22] NETWORK:error (6) sending player state
[13:22:23] NETWORK:error (6) sending player state
[13:22:24] NETWORK:error (6) sending player state
[13:22:25] NETWORK:error (6) sending player state
[13:22:26] NETWORK:error (6) sending player state
[13:22:26] FPS 59.88, 3101, 14640, -2099
[13:22:27] NETWORK:error (6) sending player state
[13:22:27] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:27] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:27] Starting critical power curve search job (71274614) mTimeStamp = 40.10794 m_lastSearchTime = 30.09107 calculating=false
[13:22:28] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:28] NETWORK:error (6) sending player state
[13:22:29] NETWORK:error (6) sending player state
[13:22:30] NETWORK:error (6) sending player state
[13:22:30] FB resize: 0 x 0
[13:22:30] resize: 1 x 1
[13:22:31] NETWORK:error (6) sending player state
[13:22:32] NETWORK:error (6) sending player state
[13:22:33] NETWORK:error (6) sending player state
[13:22:33] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:33] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:34] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:34] NETWORK:error (6) sending player state
[13:22:34] FPS 60.12, 3101, 14640, -2099
[13:22:35] NETWORK:error (6) sending player state
[13:22:36] NETWORK:error (6) sending player state
[13:22:37] NETWORK:error (6) sending player state
[13:22:37] Starting critical power curve search job (71284638) mTimeStamp = 50.13330 m_lastSearchTime = 40.12494 calculating=false
[13:22:38] NETWORK:error (6) sending player state
[13:22:39] NETWORK:error (6) sending player state
[13:22:39] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:39] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:40] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:40] NETWORK:error (6) sending player state
[13:22:41] NETWORK:error (6) sending player state
[13:22:42] NETWORK:error (6) sending player state
[13:22:42] FPS 59.88, 3101, 14640, -2099
[13:22:43] NETWORK:error (6) sending player state
[13:22:44] BLE : Set notify failed
[13:22:44] NETWORK:error (6) sending player state
[13:22:44] BLE : Sending DEVICE - BLE DISCONNECT ERROR [ UUID: 211284804739637 ]
[13:22:45] NETWORK:error (6) sending player state
[13:22:45] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:45] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:46] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:46] NETWORK:error (6) sending player state
[13:22:47] NETWORK:error (6) sending player state
[13:22:47] [INFO] UDP metrics {StC Rx: 0, Rx error: 0, CtS Tx: 0, Tx error: 0}
[13:22:48] Starting critical power curve search job (71294671) mTimeStamp = 60.16753 m_lastSearchTime = 50.15030 calculating=false
[13:22:48] NETWORK:error (6) sending player state
[13:22:49] NETWORK:error (6) sending player state
[13:22:50] NETWORK:error (6) sending player state
[13:22:50] FPS 60.00, 3101, 14640, -2099
[13:22:51] NETWORK:error (6) sending player state
[13:22:51] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:51] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:52] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:52] NETWORK:error (6) sending player state
[13:22:53] NETWORK:error (6) sending player state
[13:22:54] NETWORK:error (6) sending player state
[13:22:55] NETWORK:error (6) sending player state
[13:22:56] NETWORK:error (6) sending player state
[13:22:57] NETWORK:error (6) sending player state
[13:22:57] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:22:57] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:22:58] Starting critical power curve search job (71304705) mTimeStamp = 70.19868 m_lastSearchTime = 60.18253 calculating=false
[13:22:58] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:22:58] NETWORK:error (6) sending player state
[13:22:58] FPS 60.00, 3101, 14640, -2099
[13:22:59] NETWORK:error (6) sending player state
[13:23:00] NETWORK:error (6) sending player state
[13:23:01] NETWORK:error (6) sending player state
[13:23:02] NETWORK:error (6) sending player state
[13:23:03] NETWORK:error (6) sending player state
[13:23:03] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:23:03] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:23:04] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:23:04] NETWORK:error (6) sending player state
[13:23:05] NETWORK:error (6) sending player state
[13:23:06] NETWORK:error (6) sending player state
[13:23:06] FPS 60.00, 3101, 14640, -2099
[13:23:07] NETWORK:error (6) sending player state
[13:23:08] Starting critical power curve search job (71314739) mTimeStamp = 80.23077 m_lastSearchTime = 70.21568 calculating=false
[13:23:08] NETWORK:error (6) sending player state
[13:23:09] NETWORK:error (6) sending player state
[13:23:09] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:23:09] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:23:10] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:23:10] NETWORK:error (6) sending player state
[13:23:11] NETWORK:error (6) sending player state
[13:23:12] NETWORK:error (6) sending player state
[13:23:13] NETWORK:error (6) sending player state
[13:23:14] NETWORK:error (6) sending player state
[13:23:14] FPS 60.00, 3101, 14640, -2099
[13:23:15] NETWORK:error (6) sending player state
[13:23:15] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:23:15] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:23:16] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:23:16] NETWORK:error (6) sending player state
[13:23:17] NETWORK:error (6) sending player state
[13:23:18] Starting critical power curve search job (71324772) mTimeStamp = 90.26385 m_lastSearchTime = 80.24876 calculating=false
[13:23:18] NETWORK:error (6) sending player state
[13:23:19] NETWORK:error (6) sending player state
[13:23:20] NETWORK:error (6) sending player state
[13:23:21] NETWORK:error (6) sending player state
[13:23:21] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:23:21] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:23:22] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:23:22] NETWORK:error (6) sending player state
[13:23:22] FPS 60.00, 3101, 14640, -2099
[13:23:23] NETWORK:error (6) sending player state
[13:23:24] NETWORK:error (6) sending player state
[13:23:25] NETWORK:error (6) sending player state
[13:23:26] NETWORK:error (6) sending player state
[13:23:27] NETWORK:error (6) sending player state
[13:23:27] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:23:27] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:23:28] Starting critical power curve search job (71334805) mTimeStamp = 100.29693 m_lastSearchTime = 90.28085 calculating=false
[13:23:28] NETWORK:error (6) sending player state
[13:23:29] NETWORK:error (6) sending player state
[13:23:30] NETWORK:error (6) sending player state
[13:23:30] FPS 60.12, 3101, 14640, -2099
[13:23:31] NETWORK:error (6) sending player state
[13:23:32] NETWORK:error (6) sending player state
[13:23:33] NETWORK:error (6) sending player state
[13:23:34] NETWORK:error (6) sending player state
[13:23:35] NETWORK:error (6) sending player state
[13:23:36] NETWORK:error (6) sending player state
[13:23:37] NETWORK:error (6) sending player state
[13:23:38] Starting critical power curve search job (71344839) mTimeStamp = 110.32901 m_lastSearchTime = 100.31293 calculating=false
[13:23:38] NETWORK:error (6) sending player state
[13:23:38] FPS 60.12, 3101, 14640, -2099
[13:23:39] NETWORK:error (6) sending player state
[13:23:40] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:23:40] NETWORK:error (6) sending player state
[13:23:41] NETWORK:error (6) sending player state
[13:23:42] NETWORK:error (6) sending player state
[13:23:43] NETWORK:error (6) sending player state
[13:23:44] NETWORK:error (6) sending player state
[13:23:45] NETWORK:error (6) sending player state
[13:23:45] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:23:45] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:23:46] NETWORK:error (6) sending player state
[13:23:46] FPS 60.00, 3101, 14640, -2099
[13:23:47] NETWORK:error (6) sending player state
[13:23:47] [INFO] UDP metrics {StC Rx: 0, Rx error: 0, CtS Tx: 0, Tx error: 0}
[13:23:48] Starting critical power curve search job (71354856) mTimeStamp = 120.34609 m_lastSearchTime = 110.34601 calculating=false
[13:23:48] [INFO] Sending telemetry...
[13:23:48] NETWORK:error (6) sending player state
[13:23:49] NETWORK:error (6) sending player state
[13:23:50] NETWORK:error (6) sending player state
[13:23:51] NETWORK:error (6) sending player state
[13:23:52] NETWORK:error (6) sending player state
[13:23:53] NETWORK:error (6) sending player state
[13:23:54] NETWORK:error (6) sending player state
[13:23:54] FPS 60.12, 3101, 14640, -2099
[13:23:55] NETWORK:error (6) sending player state
[13:23:56] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.158:21588 (secure)
[13:23:56] NETWORK:error (6) sending player state
[13:23:57] NETWORK:error (6) sending player state
[13:23:58] Starting critical power curve search job (71364889) mTimeStamp = 130.37766 m_lastSearchTime = 120.36209 calculating=false
[13:23:58] NETWORK:error (6) sending player state
[13:23:59] NETWORK:error (6) sending player state
[13:24:00] NETWORK:error (6) sending player state
[13:24:01] NETWORK:error (6) sending player state
[13:24:01] [WARN] Auxiliary Controller failed to shut down tcp socket: 'A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.' (10057)
[13:24:01] [INFO] Auxiliary Controller failed to connect to socket: 'The I/O operation has been aborted because of either a thread exit or an application request.' (995)
[13:24:02] NETWORK:error (6) sending player state
[13:24:02] FPS 60.00, 3101, 14640, -2099
[13:24:03] NETWORK:error (6) sending player state
[13:24:04] NETWORK:error (6) sending player state
[13:24:05] NETWORK:error (6) sending player state
[13:24:06] NETWORK:error (6) sending player state
[13:24:07] NETWORK:error (6) sending player state
[13:24:08] Starting critical power curve search job (71374906) mTimeStamp = 140.39568 m_lastSearchTime = 130.39465 calculating=false
[13:24:08] NETWORK:error (6) sending player state
[13:24:09] NETWORK:error (6) sending player state
[13:24:10] NETWORK:error (6) sending player state
[13:24:10] FPS 60.00, 3101, 14640, -2099
[13:24:11] NETWORK:error (6) sending player state