Skip to content

Instantly share code, notes, and snippets.

@lightcap
Created September 3, 2018 17:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lightcap/4e4d3ac154102048d78bbc0fe2d75f57 to your computer and use it in GitHub Desktop.
Save lightcap/4e4d3ac154102048d78bbc0fe2d75f57 to your computer and use it in GitHub Desktop.
A log of what happens when Bluetooth drops on Macs, filtered for firmware updates. Same exact thing happens on two 2018 MacBook Pros connected to Apple Magic Trackpad and Apple Magic Keyboard.
default 10:09:36.430726 -0700 fud Persisted state machine restored to state FUD_STATE_END
default 10:09:36.448065 -0700 fud Persisted state machine restored to state FUD_STATE_DO_REMOTECHECK
default 10:09:36.449332 -0700 fud Persisted state machine restored to state FUD_STATE_DO_REMOTECHECK
default 10:09:36.449780 -0700 fud Resuming fud...
default 10:09:36.450676 -0700 fud shouldDefaultModalClientBeEnabled() - 1
default 10:09:36.450747 -0700 fud registering XPC activity with XPC_ACTIVITY_CHECK_IN
default 10:09:36.450853 -0700 fud blessRequestsList={
}
default 10:09:36.451003 -0700 fud Stream event happened for filter: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:36.451259 -0700 fud -[FudStateMachine isActive]: state=5 nextState=-1 filter=com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:36.451504 -0700 fud -[FudIpcDispatch dispatchStateMachineEvent:] - filter name: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt - exclusion group - com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:36.451688 -0700 fud ExclusionGroupFilter: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt (com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt)
default 10:09:36.451859 -0700 fud Clearing state for new event stream...
default 10:09:36.451970 -0700 fud Creating new state machine for event: FudEvent - Client:(null) Type:112 Filter:com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt Data:<dictionary: 0x7f80b1001e90> { count = 4, transaction: 1, voucher = 0x7f80b1001f50, contents =
"Command" => <uint64: 0x7f80b1001120>: 112
"PluginIdentifier" => <string: 0x7f80b1000350> { length = 56, contents = "com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins" }
"IOMatchLaunchServiceID" => <uint64: 0x7f80b1101ba0>: 4295001720
"XPCEventName" => <string: 0x7f80b1101c00> { length = 54, contents = "com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt" }
} Options:{
IOMatchLaunchServiceID = 4295001720;
}
default 10:09:36.452410 -0700 fud Successfully registered client 'com.apple.fud.defaultmodalclient' for identifier 'Modal UI'
default 10:09:36.452618 -0700 fud StateMachine Dealloc pluginName=com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins filterName=com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:36.452706 -0700 fud Disabiling stream events for device class: com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins
default 10:09:36.452885 -0700 fud -[FudStateMachine runState]: invoking selector for state FUD_STATE_QUERY_NEEDS_BOOTSTRAP
default 10:09:36.453048 -0700 fud -[FudStateMachine didRunStateWithInfo:]: transition from state FUD_STATE_QUERY_NEEDS_BOOTSTRAP to FUD_STATE_DO_BOOTSTRAP
default 10:09:36.453303 -0700 fud -[FudStateMachine runState]: invoking selector for state FUD_STATE_DO_BOOTSTRAP
default 10:09:36.456146 -0700 fud FW update policy: versionCheckDelay 0, inactivityDelayPreflight 0, bootstrapDelay 5, inactivityDelay 300, networkDelay 300, featureReportDelay 0, compatibilityVersion 2, batteryCheckHost 0, batteryCheckDevice 1, minBatteryHost 0, minBatteryDevice 5, STFWFirst 0, resetEveryFWPayload 0, deviceNeedsBTReconnect 1, sendSDPQueryNotification 1, bluetoothReconnectDelay 15 targetDevice
default 10:09:41.463925 -0700 fud IOHIDDeviceClass::start: elementCount=8 reportHandlerCount=3
default 10:09:41.463998 -0700 fud IOHIDDeviceClass::buildElements: type=0 *buffer=7f80b11037c0 *count=8 size=768
default 10:09:41.464055 -0700 fud IOHIDDeviceClass::buildElements: type=1 *buffer=7f80b1103ba0 *count=3 size=288
error 10:09:44.162234 -0700 fud reportID 0xB8 error 0xe00002d7
default 10:09:44.163608 -0700 fud -[FudStateMachine didRunStateWithInfo:]: reporting completion of step 'Bootstrap' to delegate
default 10:09:44.165438 -0700 fud Enabling stream events for suspended device class: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:44.165579 -0700 fud completed step:Bootstrap successful:NO
default 10:09:44.165654 -0700 fud -[FudStateMachine didRunStateWithInfo:]: transition from state FUD_STATE_DO_BOOTSTRAP to FUD_STATE_END
default 10:09:44.165846 -0700 fud -[FudStateMachine performNextStepWithOptions:]: uncleared exception (Error Domain=com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins.Trackpad6 Code=21 "Update params feature report ID 0xB8 failed with 0xE00002D7 kIOReturnOffline (device offline)" UserInfo={PluginName=com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins, NSLocalizedDescription=Update params feature report ID 0xB8 failed with 0xE00002D7 kIOReturnOffline (device offline), DeviceClassName=com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt})
default 10:09:44.166232 -0700 fud -[FudStateMachine runState]: invoking selector for state FUD_STATE_END
default 10:09:44.166626 -0700 fud -[FudStateMachine didRunStateWithInfo:]: staying in state FUD_STATE_END
default 10:09:45.552086 -0700 fud Stream event happened for filter: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:45.552459 -0700 fud -[FudStateMachine isActive]: state=1 nextState=1 filter=com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:45.552582 -0700 fud -[FudIpcDispatch dispatchStateMachineEvent:] - filter name: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt - exclusion group - com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:45.552703 -0700 fud ExclusionGroupFilter: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt (com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt)
default 10:09:45.552824 -0700 fud Clearing state for new event stream...
default 10:09:45.553013 -0700 fud Creating new state machine for event: FudEvent - Client:(null) Type:112 Filter:com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt Data:<dictionary: 0x7f80aff00eb0> { count = 4, transaction: 1, voucher = 0x7f80aff0af70, contents =
"Command" => <uint64: 0x7f80b1500000>: 112
"PluginIdentifier" => <string: 0x7f80b1500090> { length = 56, contents = "com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins" }
"IOMatchLaunchServiceID" => <uint64: 0x7f80aff08550>: 4295001766
"XPCEventName" => <string: 0x7f80aff07410> { length = 54, contents = "com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt" }
} Options:{
IOMatchLaunchServiceID = 4295001766;
}
default 10:09:45.553450 -0700 fud Disabiling stream events for device class: com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins
default 10:09:45.553628 -0700 fud -[FudStateMachine runState]: invoking selector for state FUD_STATE_QUERY_NEEDS_BOOTSTRAP
default 10:09:45.553891 -0700 fud -[FudStateMachine didRunStateWithInfo:]: transition from state FUD_STATE_QUERY_NEEDS_BOOTSTRAP to FUD_STATE_DO_BOOTSTRAP
default 10:09:45.554273 -0700 fud -[FudStateMachine runState]: invoking selector for state FUD_STATE_DO_BOOTSTRAP
default 10:09:45.555120 -0700 fud FW update policy: versionCheckDelay 0, inactivityDelayPreflight 0, bootstrapDelay 5, inactivityDelay 300, networkDelay 300, featureReportDelay 0, compatibilityVersion 2, batteryCheckHost 0, batteryCheckDevice 1, minBatteryHost 0, minBatteryDevice 5, STFWFirst 0, resetEveryFWPayload 0, deviceNeedsBTReconnect 1, sendSDPQueryNotification 1, bluetoothReconnectDelay 15 targetDevice
default 10:09:50.558179 -0700 fud IOHIDDeviceClass::start: elementCount=8 reportHandlerCount=3
default 10:09:50.558235 -0700 fud IOHIDDeviceClass::buildElements: type=0 *buffer=7f80b1103770 *count=8 size=768
default 10:09:50.558284 -0700 fud IOHIDDeviceClass::buildElements: type=1 *buffer=7f80b1104140 *count=3 size=288
default 10:09:50.995358 -0700 fud checking updates for <private>
default 10:09:50.996382 -0700 fud IOHIDDeviceClass::start: elementCount=8 reportHandlerCount=3
default 10:09:50.996431 -0700 fud IOHIDDeviceClass::buildElements: type=0 *buffer=7f80aff0bcb0 *count=8 size=768
default 10:09:50.996478 -0700 fud IOHIDDeviceClass::buildElements: type=1 *buffer=7f80aff03a90 *count=3 size=288
default 10:09:51.054247 -0700 fud -[FudStateMachine didRunStateWithInfo:]: reporting completion of step 'Bootstrap' to delegate
default 10:09:51.055676 -0700 fud Enabling stream events for suspended device class: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt
default 10:09:51.055940 -0700 fud -[FudStateMachine didRunStateWithInfo:]: transition from state FUD_STATE_DO_BOOTSTRAP to FUD_STATE_QUERY_NEEDS_REMOTECHECK
default 10:09:51.056297 -0700 fud ExclusionGroupFilter: com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt (com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt)
default 10:09:51.056902 -0700 fud Modal Default Client - Got device attach event for com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt updateInProgress=0 queue[0]=(
)
default 10:09:51.057589 -0700 fud Modal Client - Held Sleep Assertion id=com.apple.MobileAccessoryUpdater.SleepAssertionID.ModalClient sleepAssertionId=41490
default 10:09:51.059056 -0700 fud Resuming state machine...
default 10:09:51.059611 -0700 fud -[FudStateMachine runState]: invoking selector for state FUD_STATE_QUERY_NEEDS_REMOTECHECK
default 10:09:51.061499 -0700 fud Device is connected to network
default 10:09:51.061595 -0700 fud -[FudStateMachine didRunStateWithInfo:]: transition from state FUD_STATE_QUERY_NEEDS_REMOTECHECK to FUD_STATE_DO_REMOTECHECK
default 10:09:51.061789 -0700 fud -[FudStateMachine runState]: invoking selector for state FUD_STATE_DO_REMOTECHECK
default 10:09:51.068753 -0700 dasd Submitted Activity: com.apple.CFNetwork-cc-132-75-Task <0B3FB0F9-B47F-4452-A4DA-0C164339C1AA>.<mobileassetd>.<com.apple.MobileAsset.asset-metadata-downloads:fud>.<11>:F91506 <private>
default 10:09:51.072031 -0700 dasd com.apple.CFNetwork-cc-132-75-Task <0B3FB0F9-B47F-4452-A4DA-0C164339C1AA>.<mobileassetd>.<com.apple.MobileAsset.asset-metadata-downloads:fud>.<11>:F91506:[
{name: ApplicationPolicy, policyWeight: 5.000, response: {Decision: Can Proceed, Score: 0.50}}
] sumScores:24.100000, denominator:26.700000, FinalDecision: Can Proceed FinalScore: 0.902622}
default 10:09:51.072080 -0700 dasd 'com.apple.CFNetwork-cc-132-75-Task <0B3FB0F9-B47F-4452-A4DA-0C164339C1AA>.<mobileassetd>.<com.apple.MobileAsset.asset-metadata-downloads:fud>.<11>:F91506' DecisionToRun:1 (Bypasses Predictions)
default 10:09:51.350395 -0700 fud _MobileAssetSendCopyMatchingAssetsCommand: [MobileAssetError:27] Unable to copy asset information from https://mesu.apple.com/assets/macos/ for asset type com.apple.MobileAsset.MobileAccessoryUpdate.TrackpadFirmware.6
default 10:09:51.352596 -0700 fud _MobileAssetSendCopyMatchingAssetsCommand: [MobileAssetError:29] Unable to copy asset information from https://mesu.apple.com/assets/macos/ for asset type com.apple.MobileAsset.MobileAccessoryUpdate.TrackpadFirmware.6
default 10:09:51.352906 -0700 fud -[FudStateMachine didFind:info:updateAvailable:needsDownload:error:]: find was not successful: Error Domain=ASError Code=20 "Unable to copy asset information from https://mesu.apple.com/assets/macos/ for asset type com.apple.MobileAsset.MobileAccessoryUpdate.TrackpadFirmware.6" UserInfo={NSDescription=Unable to copy asset information from https://mesu.apple.com/assets/macos/ for asset type com.apple.MobileAsset.MobileAccessoryUpdate.TrackpadFirmware.6, PluginName=com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins, DeviceClassName=com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt}
default 10:09:51.353088 -0700 fud -[FudStateMachine didRunStateWithInfo:](): pluginForcedSilentUpdate = 0
default 10:09:51.353129 -0700 fud -[FudStateMachine didRunStateWithInfo:]: reporting completion of step 'Find' to delegate
default 10:09:51.354528 -0700 fud FudSM successful=0 aOperation=4 aCommand=107 nextStateMachineStep=4 nextFudCommand=107 nextStepString=Find
default 10:09:51.354585 -0700 fud -[FudStateMachine didRunStateWithInfo:]: staying in state FUD_STATE_DO_REMOTECHECK
default 10:09:51.354830 -0700 fud Modal Default Client - completed step:Find device:com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt successful:NO next-step:Find silentUpdate=1 error:Error Domain=ASError Code=20 "Unable to copy asset information from https://mesu.apple.com/assets/macos/ for asset type com.apple.MobileAsset.MobileAccessoryUpdate.TrackpadFirmware.6" UserInfo={NSDescription=Unable to copy asset information from https://mesu.apple.com/assets/macos/ for asset type com.apple.MobileAsset.MobileAccessoryUpdate.TrackpadFirmware.6, PluginName=com.apple.MobileAccessoryUpdater.StandaloneHIDFudPlugins, DeviceClassName=com.apple.mau.plugin.standalonehiddevice.trackpad.6.bt}
default 10:09:51.355089 -0700 fud Modal Default Client - stepComplete(): Released sleep assertion ret=0 id=com.apple.MobileAccessoryUpdater.SleepAssertionID.ModalClient sleepAssertionId=41490
default 10:09:51.355136 -0700 fud Modal Default Client - Not advancing state machine-
default 10:09:53.251199 -0700 nsurlsessiond [69 <private> stream, bundle id: fud, pid: 132, url: https://mesu.apple.com/assets/macos/com_apple_MobileAsset_MobileAccessoryUpdate_TrackpadFirmware_6/com_apple_MobileAsset_MobileAcc, tls, indefinite] cancelled
[69.1 136DA79C-3641-49A2-B3CF-F86D663281EC <private>.54652<-><private>]
Connected Path: satisfied (Path is satisfied), interface: en0, ipv4, dns
Duration: 2.178s, DNS @0.000s took 0.041s, TCP @0.044s took 0.042s, TLS took 0.089s
bytes in/out: 4252/980, packets in/out: 6/3, rtt: 0.040s, retransmitted packets: 0, out-of-order packets: 0
default 10:09:53.251639 -0700 dasd COMPLETED com.apple.CFNetwork-cc-132-75-Task <0B3FB0F9-B47F-4452-A4DA-0C164339C1AA>.<mobileassetd>.<com.apple.MobileAsset.asset-metadata-downloads:fud>.<11>:F91506 <private>!
default 10:09:53.251822 -0700 dasd NO LONGER RUNNING com.apple.CFNetwork-cc-132-75-Task <0B3FB0F9-B47F-4452-A4DA-0C164339C1AA>.<mobileassetd>.<com.apple.MobileAsset.asset-metadata-downloads:fud>.<11>:F91506 ...Tasks running in group [<private>] are 0!
default 10:10:21.354749 -0700 fud Nothing left to do, exiting.
default 10:10:21.410405 -0700 fud Successfully serialized to disk
@lightcap
Copy link
Author

lightcap commented Sep 3, 2018

I've got the same exact issue on two brand new 2018 MacBook Pros. error code is the same too reportID 0xB8 error 0xe00002d7. I still think this has to do with failed firmware downloads, but Apple denies that's the case. It's only when the bluetooth peripherals disconnect that I see the attempt by fud (firmware update daemon). And they seem to fail.

Here's the steps I've taken to troubleshoot this (and way too much of my time):

  1. Get a replacement 2018 MacBook Pro from Apple to replace the first machine that showed this issue.
  2. Restore from a superduper image to the new machine.
  3. New machine showed the same symptom, disconnect and reconnect of Apple bluetooth peripherals.
  4. Erase disk on old machine (still a 2018 MBP).
  5. Install pristine 10.13.6.
  6. Use the machine for a few hours with no external monitor, nor handoff enabled. No symptoms.
  7. Enable handoff after those few hours. Still no problem.
  8. Connect to external monitor, symptom resurfaces after an hour or so of utilization.

Next I'll be testing with no external monitor attached again. This time to see if the symptoms resurface or not. Hoping to eliminate the possibility of interference from USB-C external monitor connections in particular. (Note I'm using a Moshi USB-C to mini display port cable).

If it happens while disconnected from the monitor, then it's safe to say that it's not the problem.

Then I'll test handoff on and off in isolation.

But, what I can say with 100% certainty is that it's not limited to individual machines, and it's not 3rd party software. This is an Apple issue one way or another, be it hardware or software.

This post shows the same issue, but on a 2017 iMac. Note, that it does have USB-C, but obviously no external monitor (other than itself, which maybe is enough?)

@lightcap
Copy link
Author

lightcap commented Sep 3, 2018

Disconnected again without the external monitor attached. So eliminate that as a possibility.

@BassApps
Copy link

I remembered people saying it's caused by the USB C hub plugged in on the wrong side. I thought to myself "bye bye headphone jack" because when plugged in on the other side it covers my AUX. Went to my search history and realized that I've googled this issue before the hub has actually arrived. So it's got definitely NOTHING to do with hub. I see frequent powerd messages during the dropouts so I gotta check if it might be when the cable is plugged in.

@swarkentin
Copy link

Any more luck with this? I just got a brand new MacBook Pro (15" 2018) and a white Magic Trackpad 2 and am running into the same thing.

I can also confirm to see the following in the logs at the time of disconnect:

error	08:26:27.524363 -0600	mobileassetd	-[ASAssetMetadataDownloader URLSession:dataTask:didReceiveResponse:completionHandler:]_block_invoke: server error for https://mesu.apple.com/assets/macos/com_apple_MobileAsset_MobileAccessoryUpdate_TrackpadFirmware_6/com_apple_MobileAsset_MobileAccessoryUpdate_TrackpadFirmware_6.xml (status 403)

@clivefoley
Copy link

clivefoley commented Jun 19, 2019

Hey folks. I found this while suffering the same issue and I (think) I might have something that might help.

I have 2 WiFi networks in my office (2.4Ghz and 5Ghz). My Mac has the logon password for both in keychain. Throughout the day, my Mac would randomly switch between the 2 networks.

I found that my trackpad would constantly drop shortly after connecting to the 2.4Ghz network, to the point where I can re-create the problem at will. Spoke with Apple support and they told me that WiFi can interfere with bluetooth as it's on a similar frequency.

Forcing connection to the 5Ghz WiFi network and removing the 2.4Ghz network has made the problem go away for me. My guess is that there might be a clash between the 2.4Ghz WiFi network and the bluetooth frequency (which is also 2.4Ghz).

I've a bluetooth Apple keyboard that never causes me any problems, just the trackpad.

Hope this helps someone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment