Random Restarts with "Sleep Wake Failure" error on Mavericks

When I leave my Mavericks OS X MacBookPro idle for a while, very often it will crash and reboot by itself. After reboot, the Problem Report dialog will show up, telling that "Sleep Wake Failure experienced a problem". The problem report is not showing a crash — only powerstats from running programs. Here's the beginning of the report:

Date/Time:       2014-01-25 03:40:41 +0100
OS Version:      10.9.1 (Build 13B3116)
Architecture:    x86_64
Report Version:  18

Event:           Sleep Wake Failure
Steps:           50

Hardware model:  MacBookPro11,1
Active cpus:     4


Powerstats for:  [...]

This problem is described in various discussion forums, but I was unable to find it here. Simply googling for "sleep wakeup failure" (even without quotes) will turn up tons of relevant and unanswered threads; the same query here returns no relevant result. Those threads also include complete logs, hardware descriptions, and so on; I've excluded informations which seems unrelated (for instance, this seems to happen irrespective of the particular hardware).

https://discussions.apple.com/thread/5508018?start=0&tstart=0

I have a workaround and I will post it as a self-answer, but I would like something better — a statement that Apple is investigating would make me much happier.

Another relevant error message I got is, in the Console, "Restarting to collect Sleep wake debug logs" (which seems to come from IOKit within the kernel, see this source file). For the same crash as above, we see that the computer wakes up on an alarm after two hours without any logs, does little for 5-6 minutes (probably trying to wake up), and then after six minutes times out and reboots.

Jan 25 01:34:52 BlueVelvet kernel[0]: IOPPF: Sent gpu-internal-plimit-notification last value 0 (rounded time weighted average 0)
Jan 25 03:34:49 BlueVelvet kernel[0]: Wake reason: RTC (Alarm)
Jan 25 03:34:49 BlueVelvet kernel[0]: RTC: Maintenance 2014/1/25 02:34:49, sleep 2014/1/25 00:34:53
Jan 25 03:34:49 BlueVelvet kernel[0]: AppleCamIn::systemWakeCall - messageType = 0xE0000340
Jan 25 03:34:49 BlueVelvet kernel[0]: AppleCamIn::wakeEventHandlerThread
Jan 25 03:34:49 BlueVelvet kernel[0]: Previous Sleep Cause: 5
Jan 25 03:34:49 BlueVelvet kernel[0]: IOPPF: Sent gpu-internal-single-slice-plimit-notification last value 0 (rounded time weighted average 0)
Jan 25 03:34:49 BlueVelvet kernel[0]: IOPPF: Sent gpu-internal-plimit-notification last value 0 (rounded time weighted average 0)
Jan 25 03:34:49 BlueVelvet kernel[0]: AppleThunderboltNHI::prePCIWake - power up complete - took 60884 us
Jan 25 03:34:49 BlueVelvet kernel[0]: AppleThunderboltHAL::earlyWake - complete - took 1 milliseconds
Jan 25 03:34:49 BlueVelvet kernel[0]: TBT W (2): 0x0040 [x]
Jan 25 03:34:49 BlueVelvet kernel[0]: IOThunderboltSwitch<0xffffff8022d1fe00>(0x0)::listenerCallback - Thunderbolt HPD packet for route = 0x0 port = 11 unplug = 0
Jan 25 03:34:49 BlueVelvet kernel[0]: IOThunderboltSwitch<0xffffff8022d1fe00>(0x0)::listenerCallback - Thunderbolt HPD packet for route = 0x0 port = 12 unplug = 0
Jan 25 03:34:49 BlueVelvet kernel[0]: **** [IOBluetoothHostControllerUSBTransport][SuspendDevice] -- Resume -- suspendDeviceCallResult = 0x0000 (kIOReturnSuccess) -- 0x0c00 ****
Jan 25 03:34:49 BlueVelvet kernel[0]: ARPT: 58329.783703: si_survive_perst_war: bar0win before 18003000, bar0win after 18001000
Jan 25 03:34:49 BlueVelvet kernel[0]: AppleUSBMultitouchDriver::checkStatus - received Status Packet, Payload 2: device was reinitialized
Jan 25 03:34:49 BlueVelvet kernel[0]: ARPT: 58329.786957: pcicore_pci_pmeclr PMECSR : 0x4008
Jan 25 03:34:49 BlueVelvet kernel[0]: ARPT: 58329.786966: pcicore_pmestatclr PMECSR : 0x4008
Jan 25 03:34:49 BlueVelvet kernel[0]: ARPT: 58329.787066: pcicore_pci_pmeclr PMECSR : 0x4008
Jan 25 03:34:49 BlueVelvet.local hidd[193]: MultitouchHID: device bootloaded
Jan 25 03:34:49 BlueVelvet kernel[0]: en0: BSSID changed to 74:31:70:30:57:96
Jan 25 03:34:49 BlueVelvet.local airportd[209]: _doAutoJoin: Already associated to “EasyBox-305722”. Bailing on auto-join.
Jan 25 03:34:52 BlueVelvet.local Emacs-10.7[11343]: CGSCopyDisplayUUID: Invalid display 0x2b2826d2
Jan 25 03:34:54 --- last message repeated 2 times ---
Jan 25 03:34:54 BlueVelvet kernel[0]: AppleCamIn::handleWakeEvent_gated
Jan 25 03:35:27 BlueVelvet kernel[0]: **** [IOBluetoothHostControllerUSBTransport][SuspendDevice] -- Suspend -- suspendDeviceCallResult = 0x0000 (kIOReturnSuccess) -- 0x0c00 ****
Jan 25 03:36:21 BlueVelvet.local WindowServer[271]: _CGXHWCaptureWindowList: No capable active display found.
Jan 25 03:37:01 BlueVelvet.local WindowServer[271]: _CGXHWCaptureWindowList: No capable active display found.
Jan 25 03:37:31 --- last message repeated 1 time ---
Jan 25 03:39:49 BlueVelvet kernel[0]: Restarting to collect Sleep wake debug logs
Jan 25 03:39:49 BlueVelvet kernel[0]: AppleCamIn::systemWakeCall - messageType = 0xE0000310
Jan 25 03:40:03 BlueVelvet kernel[0]: **** [IOBluetoothHostControllerUSBTransport][SuspendDevice] -- Resume -- suspendDeviceCallResult = 0x0000 (kIOReturnSuccess) -- 0x0c00 ****
Jan 25 03:40:04 BlueVelvet kernel[0]: AppleUSBMultitouchDriver::message - kIOUSBMessagePortHasBeenReset.
Jan 25 03:40:05 --- last message repeated 1 time ---
Jan 25 03:40:05 BlueVelvet kernel[0]: AppleUSBMultitouchDriver::checkStatus - received Status Packet, Payload 2: device was reinitialized
Jan 25 03:40:05 BlueVelvet.local hidd[193]: MultitouchHID: device bootloaded
Jan 25 03:40:06 BlueVelvet kernel[0]: Sound assertion - Command/Response TIMED OUT and ( kRequestStateMatch == fCodecRequest->state = 2 ), fCodecRequest->command->codec: 0xffffff8023dc7f00, fCodecRequest->command->verb: 0x270503, fPoweredDown: 1
Jan 25 03:40:06 BlueVelvet kernel[0]: Sound assertion in AppleHDAController at line 5527
Jan 25 03:40:06 BlueVelvet kernel[0]: Sound assertion in IOHDACodecDevice at line 144
Jan 25 03:40:06 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget_10134208 at line 741
Jan 25 03:40:06 BlueVelvet kernel[0]: Sound assertion in AppleHDANode at line 343
Jan 25 03:40:06 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget at line 3414
Jan 25 03:40:06 BlueVelvet kernel[0]: Sound assertion in AppleHDAFunctionGroup at line 919
Jan 25 03:40:06 BlueVelvet.local Emacs-10.7[11343]: CGSCopyDisplayUUID: Invalid display 0x2b2826d2
Jan 25 03:40:07 --- last message repeated 2 times ---
Jan 25 03:40:07 BlueVelvet kernel[0]: Sound assertion - Command/Response TIMED OUT and ( kRequestStateMatch == fCodecRequest->state = 2 ), fCodecRequest->command->codec: 0xffffff8023dc7f00, fCodecRequest->command->verb: 0x370503, fPoweredDown: 1
Jan 25 03:40:07 BlueVelvet kernel[0]: Sound assertion in AppleHDAController at line 5527
Jan 25 03:40:07 BlueVelvet kernel[0]: Sound assertion in IOHDACodecDevice at line 144
Jan 25 03:40:07 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget_10134208 at line 741
Jan 25 03:40:07 BlueVelvet kernel[0]: Sound assertion in AppleHDANode at line 343
Jan 25 03:40:07 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget at line 3414
Jan 25 03:40:07 BlueVelvet kernel[0]: Sound assertion in AppleHDAFunctionGroup at line 919
Jan 25 03:40:07 BlueVelvet kernel[0]: Restart still waiting on AppleHDADriver
Jan 25 03:40:08 BlueVelvet kernel[0]: Sound assertion - Command/Response TIMED OUT and ( kRequestStateMatch == fCodecRequest->state = 2 ), fCodecRequest->command->codec: 0xffffff8023dc7f00, fCodecRequest->command->verb: 0x470503, fPoweredDown: 1
Jan 25 03:40:08 BlueVelvet kernel[0]: Sound assertion in AppleHDAController at line 5527
Jan 25 03:40:08 BlueVelvet kernel[0]: Sound assertion in IOHDACodecDevice at line 144
Jan 25 03:40:08 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget_10134208 at line 741
Jan 25 03:40:08 BlueVelvet kernel[0]: Sound assertion in AppleHDANode at line 343
Jan 25 03:40:08 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget at line 3414
Jan 25 03:40:08 BlueVelvet kernel[0]: Sound assertion in AppleHDAFunctionGroup at line 919
Jan 25 03:40:09 BlueVelvet kernel[0]: Sound assertion - Command/Response TIMED OUT and ( kRequestStateMatch == fCodecRequest->state = 2 ), fCodecRequest->command->codec: 0xffffff8023dc7f00, fCodecRequest->command->verb: 0x570503, fPoweredDown: 1
Jan 25 03:40:09 BlueVelvet kernel[0]: Sound assertion in AppleHDAController at line 5527
Jan 25 03:40:09 BlueVelvet kernel[0]: Sound assertion in IOHDACodecDevice at line 144
Jan 25 03:40:09 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget_10134208 at line 741
Jan 25 03:40:09 BlueVelvet kernel[0]: Sound assertion in AppleHDANode at line 343
Jan 25 03:40:09 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget at line 3414
Jan 25 03:40:09 BlueVelvet kernel[0]: Sound assertion in AppleHDAFunctionGroup at line 919
Jan 25 03:40:10 BlueVelvet kernel[0]: Sound assertion - Command/Response TIMED OUT and ( kRequestStateMatch == fCodecRequest->state = 2 ), fCodecRequest->command->codec: 0xffffff8023dc7f00, fCodecRequest->command->verb: 0x670503, fPoweredDown: 1
Jan 25 03:40:10 BlueVelvet kernel[0]: Sound assertion in AppleHDAController at line 5527
Jan 25 03:40:10 BlueVelvet kernel[0]: Sound assertion in IOHDACodecDevice at line 144
Jan 25 03:40:10 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget_10134208 at line 741
Jan 25 03:40:10 BlueVelvet kernel[0]: Sound assertion in AppleHDANode at line 343
Jan 25 03:40:10 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget at line 3414
Jan 25 03:40:10 BlueVelvet kernel[0]: Sound assertion in AppleHDAFunctionGroup at line 919
Jan 25 03:40:11 BlueVelvet kernel[0]: Sound assertion - Command/Response TIMED OUT and ( kRequestStateMatch == fCodecRequest->state = 2 ), fCodecRequest->command->codec: 0xffffff8023dc7f00, fCodecRequest->command->verb: 0x770503, fPoweredDown: 1
Jan 25 03:40:11 BlueVelvet kernel[0]: Sound assertion in AppleHDAController at line 5527
Jan 25 03:40:11 BlueVelvet kernel[0]: Sound assertion in IOHDACodecDevice at line 144
Jan 25 03:40:11 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget_10134208 at line 741
Jan 25 03:40:11 BlueVelvet kernel[0]: Sound assertion in AppleHDANode at line 343
Jan 25 03:40:11 BlueVelvet kernel[0]: Sound assertion in AppleHDAWidget at line 3414
Jan 25 03:40:11 BlueVelvet kernel[0]: Sound assertion in AppleHDAFunctionGroup at line 919
Jan 25 03:40:28 localhost bootlog[0]: BOOT_TIME 1390617628 0
[... rebooting logs, omitted]
Jan 25 03:40:41 BlueVelvet.local spindump[497]: Saved diag report for Sleep Wake Failure version ??? to /Library/Logs/DiagnosticReports/Sleep Wake Failure_2014-01-25-034041_BlueVelvet.diag

The problem seems to be that automatic wakeups from the sleep state fail, possibly because of driver-related problems*. My workaround is to simply disable automatic wakeups — and even automatic sleep. Since for me the problem only happens when leaving my computer plugged in and idle for a long time, I can disable automatic sleep only when the power adapter is connected, without reducing autonomy.

However, this will increase power consumption and reduce idle time — so you might

To apply this workaround:

  • go to System Preferences -> Energy Saver -> Power Adapter tab.
  • check the box "Prevent computer from sleeping automatically when the display is off"
  • uncheck the boxes "Wake for network access" and "Enable Power Nap while plugged into a power adapter" (I also have disabled Power Nap disabled when on battery, in the Battery tab, but I'm not sure this was required).

*Therefore, some users only reproduce the problem when certain peripherals are plugged in. But for one user it might be Bluetooth, for another one some USB hard disk, and so on — there's no easy to recognize pattern, which might mean the problem is due to whatever driver happens to have an apparently rather common driver bug.

Update: my laptop is a Retina MBP Late 2013, and I am not sure how much this generalizes to other laptop (see comments).


Check with pmset -g for the hibernatemode setting. On my mac mini it was on 3 which is not appropriate for desktops. By changing it to 0, the issue went away. Read the excellent man page for further reference and instructions.

sudo pmset -a hibernatemode  0