Journal · Guide · 8 min
Why your Mac wakes at 3am, and how to read the sleep log
By Ziyarex ·
You closed the lid at midnight. At 3am the fan spins up, the charging light changes, the machine is warm in the morning and the battery is down eleven percent. Nobody touched it.
Most advice for this is a list of things to turn off. Don't do that. macOS writes down exactly why it woke, every single time, and the fix depends entirely on the reason. Read the log first, it takes about ninety seconds.
Step one: ask what happened
pmset -g log | grep -e "Wake " -e "DarkWake" | tail -40You'll get lines that look roughly like this:
2026-08-14 03:00:11 +0100 Wake DarkWake to FullWake from Standby [CDNVA] : due to RTC/HID Activity
2026-08-14 03:24:52 +0100 DarkWake due to ARPT/MaintenanceTwo fields matter. Wake vs DarkWake, and the reason after "due to".
A DarkWake is a maintenance wake: the screen stays off, the machine does a task, it goes back to sleep. That's normal and mostly harmless. A Wake is a full wake, screen, fans, the works. Repeated full wakes overnight are what you're hunting.
Step two: decode the reason
These are the ones you'll actually see:
- RTC (Alarm), a scheduled wake. Something asked the machine to get up at a specific time. Run
pmset -g schedto see the schedule. - ARPT / Wake on Network, something on your network sent a packet the Mac was told to care about. Screen sharing, a Back to My Mac descendant, a NAS, or another Apple device.
- EC.LidOpen: you opened the lid. Not your mystery.
- XHC1 / XDCI / USB, a USB device twitched. A mouse on a slightly uneven desk, a dock, a hub with flaky power, a monitor's built-in hub.
- HID Activity, a keyboard, trackpad or Bluetooth input device reported activity. Bluetooth mice in a bag are a classic.
- BATC / Battery, a battery threshold event.
- Maintenance / PowerNap: Power Nap doing mail, calendar, photo sync, Time Machine or a software update check.
The single most common cause of the 3am pattern specifically is a scheduled maintenance window: Power Nap plus automatic update checks plus Time Machine tend to cluster overnight, and they're the reason the machine picks a suspiciously round hour.
Step three: see what's holding it awake right now
Different question, same evening. If the machine won't sleep at all, the culprit is an assertion, not a wake:
pmset -g assertionsThe top block shows which assertions are held, and the block below names the process holding each one. PreventUserIdleSystemSleep held by a video app, a download manager, or a stuck helper is the usual answer. If you find something you don't recognise, that's your lead.
For the full picture at once: settings, assertions, scheduled events and recent history in one dump:
pmset -g everything | lessStep four: fix the cause you actually found
Apply only the one that matches your log. Each of these is a real trade-off, not a free win.
If it's Power Nap / Maintenance:
sudo pmset -a powernap 0Cost: mail, calendar and photo sync stop happening while asleep. They resume the moment you wake it. For most laptops this is a good trade.
If it's ARPT / Wake on Network:
sudo pmset -a womp 0Cost: you can no longer wake this Mac remotely, and screen sharing to a sleeping machine stops working. On a desktop that you remote into, leave this alone.
If it's a network stack keepalive (a Mac on power, waking every few hours):
sudo pmset -a tcpkeepalive 0Cost is real and worth stating plainly: Find My, iMessage delivery and push notifications stop arriving while the machine is asleep. macOS will warn you about this. Only reach for it if the log clearly points here.
If it's Bluetooth / HID: System Settings → Bluetooth → Advanced, and turn off "Allow Bluetooth devices to wake the computer." Then check whether a mouse is living in a bag with something pressing on it, because that's frequently the whole story.
If it's USB: unplug the hub or dock for one night as a test. A single failing hub can generate dozens of wakes, and no software setting fixes bad hardware.
If it's RTC with a scheduled event: pmset -g sched will name it. Time Machine, an update check, or something you set up years ago and forgot. Remove the schedule at its source rather than blanket-disabling wakes.
The setting to reach for last
You'll find sudo pmset -a disablesleep 1 recommended in forum threads for this. It does work, in the sense that a machine that never sleeps never wakes.
It also disables the sleep safety entirely, including lid-closed sleep. Leave it on, put the laptop in a bag, and it will run at full tilt in an enclosed space with no airflow. That's a real way to cook a battery. If you need closed-lid awake behaviour deliberately, that's a different job with different guardrails, and we wrote it up separately, it's also the entire reason Insomniac watches the thermal state instead of just flipping the switch.
For the 3am problem, don't use it. You have a log line telling you the actual cause. Fix that.
A note on what "fixed" looks like
After you change one setting, check the log again the next morning rather than declaring victory:
pmset -g log | grep -e "Wake " | tail -20Machines usually have more than one cause. Fix them one at a time, in the order the log ranks them by frequency, and you'll find two settings cover almost everything.
