Hi,
this is bit of a odd one and leaves me with head scratching because everything else works flawlessly and there’s no indication that something is or is about to get wrong. But it is happening repeatedly. I can’t basically finish The Big Ring route in Watopia - Zwift always crashes on the way up from the Mayan Jungle towards and close to the Jungle Start Pens with about 15km of the route remaining (very close to a 33km mark total distance ridden). It happens passing the spawn point and it’s a distance/location thing, not time or any power / speed / cadence / HR / used function thing. Well, crashes. It basically exits the app without any warning, confirmation or an error message. No crash report or a spindump. There’s no prior performance degradation or glitches, nothing in the world to indicate a problem. Zwift just stops and I am back to desktop. Trawling through the various logs I can’t find any indication of what might be the cause. It’s always the same place.
Video of how it looks like just before and when the crash happens:
Any ideas?
Here’s my config:
Computer: Apple MacBook Pro 16" 2023 (Apple Silicon M2 Max 12-core CPU / 38-core GPU, 96GB memory)
System: macOS Sonoma 14.3.1
Zwift version: Launcher Version 1.1.11 / Game Version 1.59.0 Apple Silicon runtime
Screen: 4K Samsung TV (144Hz capable, variable refresh rate set) connected via HDMI direct to the MacBook (there are also 2 other 4K monitors connected via Thunderbolt 4 dock, displaying just MacOS desktop at the time)
Here’s the last portion of the Zwift log:
[10:59:00] [INFO] Sending telemetry...
[10:59:00] Hit checkpoint 309 out of 439 on route: " The Big Ring"
[10:59:00] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:00] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:00] Play Haptic BOMB_RIDEON
[10:59:00] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:00] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = F340AA4E-5170-C0DC-90F2-94A6431F77E5]
[10:59:00] Play Haptic BOMB_RIDEON
[10:59:00] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:00] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = EFF7C07C-AFB1-6C41-B3E2-A57937B980D8]
[10:59:00] Total Ride Ons Given: 98
[10:59:00] Total Ride Ons Given: 99
[10:59:00] Total Ride Ons Given: 100
[10:59:01] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:01] [FTMS] SIM Grade -1.20% --> -1.21%
[10:59:01] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:01] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:01] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:01] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = F340AA4E-5170-C0DC-90F2-94A6431F77E5]
[10:59:01] [INFO] Sending telemetry...
[10:59:01] FPS 120.48, -226254, 27863, -84641
[10:59:01] Starting critical power curve search job (4939451) mTimeStamp = 3964.61841 m_lastSearchTime = 3954.61621 calculating=false
[10:59:01] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:01] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:02] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:02] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = EFF7C07C-AFB1-6C41-B3E2-A57937B980D8]
[10:59:02] [INFO] Sending telemetry...
[10:59:03] [INFO] Sending telemetry...
[10:59:03] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:03] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = EFF7C07C-AFB1-6C41-B3E2-A57937B980D8]
[10:59:04] [INFO] Sending telemetry...
[10:59:05] [INFO] Sending telemetry...
[10:59:06] [INFO] Sending telemetry...
[10:59:07] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:07] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = F340AA4E-5170-C0DC-90F2-94A6431F77E5]
[10:59:08] [INFO] Sending telemetry...
[10:59:09] Hit checkpoint 310 out of 439 on route: " The Big Ring"
[10:59:09] [INFO] Sending telemetry...
[10:59:09] FPS 114.50, -220324, 27332, -77552
[10:59:10] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:10] [FTMS] SIM Grade -1.21% --> -1.21%
[10:59:10] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:10] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:10] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:10] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:11] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:11] [FTMS] SIM Grade -1.21% --> -1.20%
[10:59:11] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:11] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:11] [INFO] Sending telemetry...
[10:59:11] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:11] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:11] Starting critical power curve search job (4949413) mTimeStamp = 3974.62891 m_lastSearchTime = 3964.62549 calculating=false
[10:59:12] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:12] [FTMS] SIM Grade -1.20% --> -1.19%
[10:59:12] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:12] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:12] [INFO] Sending telemetry...
[10:59:12] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:12] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:13] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:13] [FTMS] SIM Grade -1.19% --> -1.16%
[10:59:13] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:13] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:13] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:13] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:14] [INFO] Sending telemetry...
[10:59:14] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:14] [FTMS] SIM Grade -1.16% --> -1.09%
[10:59:14] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:14] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:14] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
Here’s the last portion of the FIT file, that gets corrupted by an unfinished write:
Read 3,947 records, 145,989 bytes, discarded 4 bytes
Record 3948: FIT Runtime Error end of stream at byte 145986
2024-03-05T10:58:19.000Z,-11.668161,166.942815,168,76,32701.79,123,8.846,99.2
2024-03-05T10:58:20.000Z,-11.668091,166.942854,168,78,32710.67,107,9.070,99.0
2024-03-05T10:58:21.000Z,-11.668021,166.942899,168,80,32719.81,184,9.282,98.8
2024-03-05T10:58:22.000Z,-11.667951,166.942949,167,81,32729.23,64,9.472,98.6
2024-03-05T10:58:23.000Z,-11.667883,166.943003,167,81,32738.81,95,9.530,98.4
2024-03-05T10:58:24.000Z,-11.667817,166.943058,167,81,32748.33,102,9.550,98.2
2024-03-05T10:58:25.000Z,-11.667752,166.943116,167,80,32757.80,84,9.515,98.2
2024-03-05T10:58:26.000Z,-11.667692,166.943177,167,79,32767.29,147,9.453,98.2
2024-03-05T10:58:27.000Z,-11.667635,166.943241,167,81,32776.76,231,9.450,98.0
2024-03-05T10:58:28.000Z,-11.667581,166.943309,167,81,32786.27,175,9.469,98.0
2024-03-05T10:58:29.000Z,-11.667530,166.943379,166,81,32795.82,190,9.447,98.0
2024-03-05T10:58:30.000Z,-11.667480,166.943449,166,82,32805.26,218,9.435,98.2
2024-03-05T10:58:31.000Z,-11.667432,166.943520,166,82,32814.68,229,9.439,98.2
2024-03-05T10:58:32.000Z,-11.667385,166.943592,166,84,32824.09,259,9.454,98.2
2024-03-05T10:58:33.000Z,-11.667337,166.943664,166,84,32833.57,260,9.492,98.2
2024-03-05T10:58:34.000Z,-11.667291,166.943737,165,85,32843.04,249,9.525,98.2
2024-03-05T10:58:35.000Z,-11.667244,166.943810,165,85,32852.58,183,9.530,98.2
2024-03-05T10:58:36.000Z,-11.667197,166.943883,165,85,32862.07,206,9.494,98.2
2024-03-05T10:58:37.000Z,-11.667149,166.943955,165,85,32871.57,206,9.479,98.2
2024-03-05T10:58:38.000Z,-11.667100,166.944026,165,85,32880.98,174,9.443,98.2
2024-03-05T10:58:39.000Z,-11.667051,166.944096,165,84,32890.35,187,9.418,98.2
2024-03-05T10:58:40.000Z,-11.666999,166.944165,165,84,32899.73,173,9.410,98.2
2024-03-05T10:58:41.000Z,-11.666945,166.944231,165,84,32909.09,210,9.420,98.2
2024-03-05T10:58:42.000Z,-11.666888,166.944296,165,84,32918.48,170,9.453,98.2
2024-03-05T10:58:43.000Z,-11.666828,166.944357,165,85,32927.86,160,9.480,98.0
2024-03-05T10:58:44.000Z,-11.666763,166.944414,165,85,32937.27,167,9.527,98.0
2024-03-05T10:58:45.000Z,-11.666693,166.944466,165,85,32946.88,170,9.601,97.8
2024-03-05T10:58:46.000Z,-11.666618,166.944511,165,85,32956.55,155,9.689,97.6
2024-03-05T10:58:47.000Z,-11.666538,166.944549,164,85,32966.29,134,9.780,97.6
2024-03-05T10:58:48.000Z,-11.666456,166.944582,164,86,32976.12,145,9.875,97.4
2024-03-05T10:58:49.000Z,-11.666370,166.944609,163,86,32985.96,120,9.985,97.0
2024-03-05T10:58:50.000Z,-11.666283,166.944634,163,86,32996.05,127,10.095,96.8
2024-03-05T10:58:51.000Z,-11.666194,166.944657,163,87,33006.24,149,10.226,96.6
2024-03-05T10:58:52.000Z,-11.666104,166.944680,163,82,33016.45,110,10.370,96.4
2024-03-05T10:58:53.000Z,-11.666013,166.944707,163,78,33026.93,71,10.485,96.0
2024-03-05T10:58:54.000Z,-11.665924,166.944740,163,79,33037.51,120,10.597,95.8
2024-03-05T10:58:55.000Z,-11.665836,166.944780,163,79,33048.23,55,10.725,95.4
Relevant entries from the MacOS system diagnostics:
default 2024-03-05 10:59:15.210644 +0000 runningboardd Now tracking process: [anon<ZwiftMacCrashHandler>(501):1067]
default 2024-03-05 10:59:15.213617 +0000 runningboardd Acquiring assertion targeting [anon<ZwiftMacCrashHandler>(501):1067] from originator [anon<ZwiftMacCrashHandler>(501):1067] with description <RBSAssertionDescriptor| "com.apple.CFNetwork.StorageDB" ID:388-1067-2061 target:1067 attributes:[
<RBSDomainAttribute| domain:"com.apple.common" name:"FinishTaskUninterruptable" sourceEnvironment:"(null)">,
<RBSAcquisitionCompletionAttribute| policy:AfterApplication>
]>
default 2024-03-05 10:59:15.213663 +0000 runningboardd Assertion 388-1067-2061 (target:[anon<ZwiftMacCrashHandler>(501):1067]) will be created as active as no start-time-defining assertions exist
default 2024-03-05 10:59:15.216125 +0000 runningboardd Invalidating assertion 388-357-749 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.coreservices.launchservicesd>:357]
default 2024-03-05 10:59:15.217804 +0000 runningboardd Invalidating assertion 388-383-759 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.WindowServer(88)>:383]
default 2024-03-05 10:59:15.236684 +0000 powerd Process ZwiftAppSilicon.1060 ClientDied NoDisplaySleepAssertion "Zwift" age:01:20:50 id:21474870570 [System: PrevIdle DeclUser IntPrevDisp kDisp]
default 2024-03-05 10:59:15.237678 +0000 runningboardd Invalidating assertion 388-329-724 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.powerd>:329]
default 2024-03-05 10:59:15.239136 +0000 loginwindow -[PersistentAppsSupport applicationQuit:] | for app:ZwiftAppSilicon, _appTrackingState = 2
default 2024-03-05 10:59:15.239139 +0000 loginwindow -[PersistentAppsSupport applicationQuit:] | App: ZwiftAppSilicon, quit, updating active tracking timer
default 2024-03-05 10:59:15.239437 +0000 runningboardd Invalidating assertion 388-357-728 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.coreservices.launchservicesd>:357]
default 2024-03-05 10:59:15.276103 +0000 runningboardd [xpcservice<com.apple.appkit.xpc.ThemeWidgetControlViewService([anon<ZwiftAppSilicon>(501):1060])(501)>:1158:1158] termination reported by launchd (2, 9, 9)
default 2024-03-05 10:59:15.286009 +0000 loginwindow -[PersistentAppsSupport applicationQuit:] | for app:ThemeWidgetControlViewService (ZwiftAppSilicon), _appTrackingState = 2
Here’s Zwiftalizer Log Parser link:
https://zwiftalizer.com/public/d54d5e6b-6e75-481f-a7f7-6c00635a6601
EDIT: I have done some further testing around the location where Zwift was crashing.
To test the problem I have basically started the shortest possible route that spawns close to the problematic location (Jungle Start pens). I rode downhill towards the jungle away from it for couple of km, made an u-turn by the rock close to the first intersection signpost and rode up back through it towards the Level 5+ green gate that’s close to KOM/KOM bypass intersection.
Spoiler alert - apart from the first try, it always crashed shortly after passing the windmill, no matter what setup or settings.
- Jungle Circuit Route - first attempt back uphill a little wobble (some graphics glitch / screen refresh), but no crash. U-turn by the green gate, through the spot, back downhill, still ok. Almost thought it’s just the route problem. U turn again and…
- Jungle Circuit Route - second attempt back uphill through the spot - crash
- Temple Trek Route - first attempt back uphill through the spot - crash
- Temple Trek Route - first attempt back uphill through the spot (Game version updated to 1.60) - crash
- Temple Trek Route - first attempt back uphill through the spot (fps locked to 60) - crash
- Temple Trek Route - first attempt back uphill through the spot (all peripherals removed, using built-in display only - crash
All the LOGs and FIT files look basically the same as above in all test cases. Nothing unusual as far as I can see.
Just for information, here are the various system monitoring graphs for the general overview. I can’t see anything unusual either, no telltale spikes close to crash or temperature, throttling or performance degradation issues.
CPU Total:
CPU Cores:
GPU Memory:
GPU:
CPU Overall Temperature:
GPU Temperature:
Fans:
Power Draw: