SOLUTION WORKAROUND by preventing MacBook from going into *deeper* Standby
I used the following approach to fix the problem on my mid-2012 Retina MacBook. I have not had a Sleep/Wake failure in over a month:
-------------------
At a Terminal Window, type:
"sudo pmset -a hibernatemode 3 standbydelay 300000 autopoweroffdelay 14400”
-------------------
(The net Solution Effect is: After the lid is closed, my MacBook does not go into deeper standby or write memory to disk for approximately ~3.5days (300,000sec / 60sec / 60min / 24hrs = 3.47days), which prevents a Sleep/Wake crash. I believe either the standbydelay and/or the autopoweroffdelay timeframes/transitions are when the Sleep/Wake crash occurs. Unless I leave my MacBook sleeping with the lid/cover closed & unused for more than 3.5 days, I have not had the Sleep/Wake crash occur.)
OPTIONAL ADDITIONAL DETAILS:
Here's the background detail of my experience. It may not be explicitely/perfectly accurate, but this is what I have researched and what I have observed to work in a repeatable fashion with my Mid-2012 Retina MacBook Pro:
LIFECYCLE of Power Management:
(1) Sleep: After Lid closed it takes about 30-60sec to put system/CPU into sleep mode (RAM/memory is still powered on for quick resume when you open your lid/cover)
(2) Standby: standbydelay measured in seconds is configurable and governs how long until standby happens (standby I think is when RAM/memory is written to disk and powered on or off, depending on hibernatemode)
(2.1) hibernatemode: "hibernatemode 3" leaves RAM powered on and enables using/setting autopoweroffdelay, which is the default for Retina MacBooks. Unless hibernatemode is set to '3', you can not use autopoweroffdelay. I have heard this setting called a 'smart sleep' feature that was introduced with 'newer' MacBooks.
(3) AutoPowerOffDelay: autopoweroffdelay configures how long until RAM/memory is powered off for maximum battery life.
My Recommended pmset Sleep/Wake Sleep/Standby/Hibernate Settings:
(These are the same pmset settings shown at the beginning of this post, just with more description)
- At a Terminal window command prompt:
"sudo pmset -a hibernatemode 3 standbydelay 300000 autopoweroffdelay 14400”
What happens with these settings, based on what I have observed/tested?
(1) Sleep > (2) Standby > (3) Power off Mem for maximum battery life:
1) Sleep: After Lid is closed it takes about 30-60seconds to put system/cpu into Sleep mode.
2) Standby: Then after 300000sec = ~3.5days standbydelay, RAM is written to disk and Mem is still powered on (300,000sec / 60sec / 60min / 24hrs = 3.47days)
3) PowerOffMem: Then after 14400min = 10days autopoweroffdelay, Mem is powered off for maximium battery life
How I came to the above pmset recommended settings:
I believe either the standbydelay and/or the autopoweroffdelay timeframe is when the Memory/Disk transition occurs that causes the Sleep/Wake crash to occur. Unless I leave my MacBook sleeping with the lid/cover closed & unused for more than 3.5 days - 10 days, I have not had the Sleep/Wake crash occur. I have experimented with smaller #s for standbydelay and autopoweroffdelay with some success. Sometimes the Sleep/Wake crash occurs after the standbydelay and other times it seems to occur after the autopoweroffdelay. Therefore, I decided to make my standbydelay longer than a typical long-weekend when I would not be using my laptop, and make the autopoweroffdelay longer than a typical 1 week vacation, so that I could leave my MacBook on *all the time* if I so chose and have a good chance of avoiding Sleep/Wake crashes. It has been working for me almost perfectly for over 6 months. And, I have been Sleep/Wake Crash free completely for the last 1-2 months.
I hope this helps some and works for most.