MacBook Pro – How to Fix Touch ID Unlocking Without Authentication

macbook promacosSecuritytouch-idunlock

My MacBook Pro with TouchBar is set up to use Touch ID, requires authentication after sleeping, has File Vault turned on… the complete works. Yet twice now I have noticed that it seemed to unlock after sleep without any input. It neither asked for the password nor did it require me to touch the Touch ID sensor. It only seems to happen at work, not at home. I did not have anything plugged in at the time; I opened the lid and was just about to plug in an external keyboard and monitor when it already presented the unlocked desktop. I'm pretty sure it was asleep before, as this was the first thing I did in the morning after taking it out of its bag.

Very strange. Any ideas what that is?

Here's an excerpt of system.log:

Dec 27 08:36:45 Davids-MacBook-Pro syslogd[35]: ASL Sender Statistics
Dec 27 08:36:45 Davids-MacBook-Pro logd[52]: _handle_cache_delete_with_urgency(0x7f8f90064190, 3, 0)
Dec 27 08:36:45 Davids-MacBook-Pro logd[52]: _volume_contains_cached_data(is /private/var/db/diagnostics/ in /) - YES
Dec 27 08:36:45 Davids-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.imfoundation.IMRemoteURLConnectionAgent): Unknown key for integer: _DirtyJetsamMemoryLimit
Dec 27 08:36:45 Davids-MacBook-Pro logd[52]: 150114280 bytes of purgeable space from log files
Dec 27 08:36:45 Davids-MacBook-Pro logd[52]: _purge_uuidtext only runs at urgency 0 (3)
Dec 27 08:36:45 Davids-MacBook-Pro logd[52]: 0 bytes of purgeable space from uuidtext files
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.138 [DFR] ERR [_DFRDisplayUsbRecvComplete] failed 0xe00002ed
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.142 [DFR] [deviceTerminate] 
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.142 [DFR] [_DFRDisplayDeviceRemoved] 
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.142 [DFR] [___DFRDisplayDeviceRemoved_block_invoke] calling client detach callback
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.142 [DFR] [_DFRDisplayClose] 
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.176 [DFR] [deviceMatch] 
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.176 [DFR] [_DFRDisplayDeviceAdded] 
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.178 [DFR] [_DFRDisplayUsbStart] 
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.178 [DFR] [_DFRDisplayOpen] 
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.179 [DFR] [_DFRDisplayOpen] sending GetInfo
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.180 [DFR] [_DFRDisplayHandleVendorPacket] kDFRDisplayCommandGetInfo ready: 0
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.180 [DFR] [_DFRDisplayHandleVendorPacket] calling client attach callback
Dec 27 08:36:45 Davids-MacBook-Pro WindowServer[143]: 911427.180 [DFR] [_DFRDisplayHandleVendorPacket] kDFRDisplayCommandGetInfo ready: 1
Dec 27 08:36:45 Davids-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.pid.IDECacheDeleteAppExtension.23557): Path not allowed in target domain: type = pid, path = /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/XPCServices/RootDebuggingXPCService.xpc error = 147: The specified service did not ship in the requestor's bundle, origin = /Applications/Xcode.app/Contents/PlugIns/IDECacheDeleteAppExtension.appex
Dec 27 08:36:45 Davids-MacBook-Pro com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.pid.IDECacheDeleteAppExtension.23557): Path not allowed in target domain: type = pid, path = /Applications/Xcode.app/Contents/Frameworks/DFRSupportKit.framework/Versions/A/XPCServices/IDETouchBarSimulatorService.xpc error = 147: The specified service did not ship in the requestor's bundle, origin = /Applications/Xcode.app/Contents/PlugIns/IDECacheDeleteAppExtension.appex
Dec 27 08:36:47 Davids-MacBook-Pro diagnosticd[225]: Streaming server Reconnected
Dec 27 08:36:47 --- last message repeated 1 time ---
Dec 27 08:36:47 Davids-MacBook-Pro Google Chrome[6971]: objc[6971]: __weak variable at 0x618000a5fa50 holds 0x2121212121212121 instead of 0x618000e2d280. This is probably incorrect use of objc_storeWeak() and objc_loadWeak(). Break on objc_weak_error to debug.
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.078 [DFR] ERR [_DFRDisplayUsbRecvComplete] failed 0xe00002eb
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.115 [DFR] [deviceTerminate] 
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.115 [DFR] [_DFRDisplayDeviceRemoved] 
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.116 [DFR] [___DFRDisplayDeviceRemoved_block_invoke] calling client detach callback
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.116 [DFR] [_DFRDisplayClose] 
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.513 [DFR] [deviceMatch] 
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.514 [DFR] [_DFRDisplayDeviceAdded] 
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.514 [DFR] [_DFRDisplayUsbStart] 
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.515 [DFR] [_DFRDisplayOpen] 
Dec 27 08:45:43 Davids-MacBook-Pro WindowServer[143]: 911965.515 [DFR] [_DFRDisplayOpen] sending GetInfo
...

I looks like a very similar pattern repeats every ~15 minutes (which is probably normal for dark-wake I'd assume). At 8:36 there the laptop was in its bag, at 8:45 was a legitimate wakeup event. Not sure if this adds any additional clues…

Best Answer

The answer appears to be that the laptop never went to sleep in the first place, and hence never locked either. Amazingly it stayed on over night (with disabled display I assume) and didn't consume more than ~2% battery.

The culprit may or may not have been the Steam client; I don't have any particular evidence for it, but it's been misbehaving a lot on Sierra and seems like a likely candidate which prevented sleep.