MacBook Pro M5 Pro: DarkWake causing overnight battery drain

Hello! I'm new to Macbook's, brand new and was hoping for some advice.

(MacBook Pro M5 Pro 18-20 48GB 2TB macOS Tahoe 26.3.1)


I’m trying to figure out if what I’m experiencing is normal or something off with my new MacBook Pro M5 Pro 48G 18-20gpu 2TB.

It’s brand new (about a week old, AppleCare+), and I’m seeing about 20% battery drain overnight while the lid is closed and it should be sleeping.

What’s confusing is that during normal use, battery life is excellent. For example, I watched ~1.5 hours of Apple TV in high quality and only lost about 5%, so the battery itself seems solid.

What I’ve tested so far:

  • Fully quit all apps (Cmd+Q, not just closing windows)
  • Properly ejected and disconnected from dock/external devices
  • Verified Wake for network access = Never
  • Checked pmset -g assertions before sleep → clean (no system sleep blockers, no external media)
  • Tried to leave it unplugged again overnight , battery at 100%
  • Ran pmset -g log | grep -i "wake" and saw repeated DarkWake entries overnight


From what I can tell, it looks like the system is waking frequently for:

  • network activity (WiFi / mDNSResponder)
  • background tasks (SleepService / dasd)


Current hypothesis:

It seems like a DarkWake loop caused by network/background services, not hardware or battery-related.


My questions:

  1. Is this something others with M4/M5 Pro Macs are seeing on newer macOS versions?
  2. Has anyone narrowed it down to a specific cause (Handoff, AirDrop, network environment, etc.)?
  3. Is there a proper fix without disabling core features like WiFi or Handoff long-term?

Not panicking since it’s under warranty, just trying to understand whether this is expected behavior, a macOS bug, or something misconfigured.


Appreciate any insight 👍

MacBook Pro (M5 Pro, 2026)

Posted on Mar 18, 2026 11:07 AM

Reply
Question marked as Top-ranking reply

Posted on Jun 23, 2026 8:50 AM

Hello you All :)


I do have the same problem with darkwakes on battery. It does not happen when I do turn off Wi-Fi and Bluetooth before closing the laptop lid/pressing sleep. Below are my findings using Gemini, where finaly some script is managing turning off/on the wifi/bt automaticly:


Apple Silicon Battery Drain Fix (SMC.OutboxNotEmpty)

1. The Problem

MacBooks (M1 to M5) experience severe battery drain (20-30% overnight) and overheat inside bags due to a persistent DarkWake loop.

Checking pmset -g log reveals repetitive wake triggers every few seconds:

due to smc.sysState.Wake(0x70070000) wifibt SMC.OutboxNotEmpty centauri-beta/ (or centauri-alpha / ARPT)

Root Cause: The Apple Silicon System Management Controller (SMC) and wireless chip handle sleep states hardware-side, ignoring macOS settings like "Wake for Network Access". In heavy radio environments, Bluetooth BLE/Continuity spam or Wi-Fi session drops overflow the chip's hardware buffer (OutboxNotEmpty), forcing hardware interrupts that repeatedly kick the CPU out of deep sleep.

2. The Manual Fix

Physically disabling radios before closing the lid resets the SMC buffer and stops the loop completely. Turning off both Wi-Fi and Bluetooth via the menu bar toggles guarantees 0% drain.

The Automated Fix (Script + Trigger)

This setup uses sleepwatcher to automatically cut off Bluetooth and Wi-Fi the millisecond the lid closes, and restores them within 2 seconds of opening it.

Step 1: Install Required CLI Tools

Install the necessary binaries via Homebrew:

Bash


brew install sleepwatcher blueutil

Step 2: Create the Execution Script

Open the editor:

Bash


sudo nano /usr/local/bin/bt-sleep-fix.sh

Paste the following code, save (Ctrl + O -> Enter), and exit (Ctrl + X):

Bash


#!/bin/bash
BLUEUTIL="/opt/homebrew/bin/blueutil"

if [ "$1" = "sleep" ]; then
    $BLUEUTIL --power 0
    networksetup -setnetworkserviceenabled Wi-Fi off
elif [ "$1" = "wake" ]; then
    $BLUEUTIL --power 1
    networksetup -setnetworkserviceenabled Wi-Fi on
fi

Apply strict system permissions:

Bash


sudo chmod 755 /usr/local/bin/bt-sleep-fix.sh
sudo chown root:wheel /usr/local/bin/bt-sleep-fix.sh

Step 3: Create the LaunchDaemon Config

Create a configuration file to link sleepwatcher events to the script:

Bash


sudo nano /Library/LaunchDaemons/com.powerpatrol.btfix.plist

Paste this XML structure, save, and exit:

XML


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.powerpatrol.btfix</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/sbin/sleepwatcher</string>
        <string>-V</string>
        <string>-s</string>
        <string>/usr/local/bin/bt-sleep-fix.sh sleep</string>
        <string>-w</string>
        <string>/usr/local/bin/bt-sleep-fix.sh wake</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Step 4: Load the Daemon into the OS Kernel

Register and run the daemon in the background:

Bash


sudo launchctl load -w /Library/LaunchDaemons/com.powerpatrol.btfix.plist
⚠️ Crucial: Upon the first wake, macOS security (TCC) will prompt you with a dialog asking if sleepwatcher can use Bluetooth. You must click "Allow", otherwise the background process will be silently blocked from manipulating the hardware state.


67 replies
Question marked as Top-ranking reply

Jun 23, 2026 8:50 AM in response to terriermind

Hello you All :)


I do have the same problem with darkwakes on battery. It does not happen when I do turn off Wi-Fi and Bluetooth before closing the laptop lid/pressing sleep. Below are my findings using Gemini, where finaly some script is managing turning off/on the wifi/bt automaticly:


Apple Silicon Battery Drain Fix (SMC.OutboxNotEmpty)

1. The Problem

MacBooks (M1 to M5) experience severe battery drain (20-30% overnight) and overheat inside bags due to a persistent DarkWake loop.

Checking pmset -g log reveals repetitive wake triggers every few seconds:

due to smc.sysState.Wake(0x70070000) wifibt SMC.OutboxNotEmpty centauri-beta/ (or centauri-alpha / ARPT)

Root Cause: The Apple Silicon System Management Controller (SMC) and wireless chip handle sleep states hardware-side, ignoring macOS settings like "Wake for Network Access". In heavy radio environments, Bluetooth BLE/Continuity spam or Wi-Fi session drops overflow the chip's hardware buffer (OutboxNotEmpty), forcing hardware interrupts that repeatedly kick the CPU out of deep sleep.

2. The Manual Fix

Physically disabling radios before closing the lid resets the SMC buffer and stops the loop completely. Turning off both Wi-Fi and Bluetooth via the menu bar toggles guarantees 0% drain.

The Automated Fix (Script + Trigger)

This setup uses sleepwatcher to automatically cut off Bluetooth and Wi-Fi the millisecond the lid closes, and restores them within 2 seconds of opening it.

Step 1: Install Required CLI Tools

Install the necessary binaries via Homebrew:

Bash


brew install sleepwatcher blueutil

Step 2: Create the Execution Script

Open the editor:

Bash


sudo nano /usr/local/bin/bt-sleep-fix.sh

Paste the following code, save (Ctrl + O -> Enter), and exit (Ctrl + X):

Bash


#!/bin/bash
BLUEUTIL="/opt/homebrew/bin/blueutil"

if [ "$1" = "sleep" ]; then
    $BLUEUTIL --power 0
    networksetup -setnetworkserviceenabled Wi-Fi off
elif [ "$1" = "wake" ]; then
    $BLUEUTIL --power 1
    networksetup -setnetworkserviceenabled Wi-Fi on
fi

Apply strict system permissions:

Bash


sudo chmod 755 /usr/local/bin/bt-sleep-fix.sh
sudo chown root:wheel /usr/local/bin/bt-sleep-fix.sh

Step 3: Create the LaunchDaemon Config

Create a configuration file to link sleepwatcher events to the script:

Bash


sudo nano /Library/LaunchDaemons/com.powerpatrol.btfix.plist

Paste this XML structure, save, and exit:

XML


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.powerpatrol.btfix</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/sbin/sleepwatcher</string>
        <string>-V</string>
        <string>-s</string>
        <string>/usr/local/bin/bt-sleep-fix.sh sleep</string>
        <string>-w</string>
        <string>/usr/local/bin/bt-sleep-fix.sh wake</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Step 4: Load the Daemon into the OS Kernel

Register and run the daemon in the background:

Bash


sudo launchctl load -w /Library/LaunchDaemons/com.powerpatrol.btfix.plist
⚠️ Crucial: Upon the first wake, macOS security (TCC) will prompt you with a dialog asking if sleepwatcher can use Bluetooth. You must click "Allow", otherwise the background process will be silently blocked from manipulating the hardware state.


Sep 4, 2026 9:27 PM in response to pragyat17

I have some new findings from further testing. As long as a Logitech MX Master mouse is paired with the MacBook, this DarkWake issue occurs in signal-heavy environments—regardless of whether the mouse is turned on, off, or completely out of range. It appears to be a pairing bug with the N1 chipset. If nearby devices continuously broadcast Bluetooth connection signals, the MacBook repeatedly wakes up, mistakenly thinking it might be the paired device. The system should have a mechanism to ignore these repeated signals, but it doesn't. Instead, it gets stuck in a DarkWake loop until the battery is completely drained. I strongly suspect that any paired Bluetooth device could trigger this bug, though I don't have concrete proof yet.


Note that the M5 series is the first to officially use the N1 chipset, so this bug currently only affects a small subset of users. However, as more new devices are released, this issue will inevitably become more widespread. I genuinely hope Apple takes this seriously.

Jul 24, 2026 9:37 PM in response to steve626

Thanks so much for your reply and advice! I moved the laptop back to the office with "Find my Mac" turned off, and after several hours, I do see the destructive repeat of "DarkWake from Deep Idle [CDNP] : due to smc.sysState.Wake(0x70070000) wifibt SMC.OutboxNotEmpty centauri-beta/ Using BATT (Charge:100%) 7 secs" comes back. So this means "Find my Mac" is not the culprit.


It's so hard to find out the cause of such dark wake which was triggered like every 10s making the computer never truly rests. The most weird thing is that it happens only in specific areas...


I do suspect there are some vulnerabilities in the firmware. This is really not like a defective hardware issue and I really hope I don't need an exchange.


For now, I found switching tcpkeepalive off significantly avoids the destructive loop. I still need more ABA tests to confirm it though.



Btw: I indeed suspected some software I installed. However, I really cannot think out a software that would be culprit. Logi Options+ is innocent after tests.

Here are all the software I installed:

BetterZip, Bob, ChatGPT, coconutBattery, FileZilla, GarageBand, Google Chrome, IINA, iMovie, iTerm, Joplin, Keynote Creator Studio, Logi Options+, Microsoft Excel, Microsoft OneNote, Microsoft Outlook, Microsoft PowerPoint, Microsoft To Do, Microsoft Word, NewFileMenu, Numbers Creator Studio, OneDrive, Pages Creator Studio, QQ, Skim, Slack, Spotify, Stats, Unsplash Wallpapers, Visual Studio Code, WeChat, Zoom

Jul 26, 2026 6:52 PM in response to zztea

After a tons of struggle, I finally pinpointed the issue!!!


In short, the most likely cause is a conflict in the N1 Bluetooth controller’s low-power state. When the paired Logitech MX Master 3S is turned off, macOS leaves the controller in an automatic reconnection state while the Mac is asleep. In the office environment, a nearby device—in my case, a Zoom Room system—broadcasts a specific BLE advertisement that appears to be incorrectly matched by the controller’s reconnection or filtering rules, causing it to wake the Mac. After each wake, macOS restores the same reconnection state, allowing the nearby signal to trigger another wake and create a continuous loop.


For now, the most effective workaround appears to be the same one suggested by @flash608: turning off Bluetooth before closing the lid. Hopefully, Apple will address this issue in a future update.



Sep 6, 2026 12:25 PM in response to pragyat17

Yes, unpairing the Logitech mouse works for my case. Since I had already completely uninstalled Logi Options+, the mouse was relying purely on Apple's native Bluetooth driver during my tests. While the Logitech mouse was my main test subject, I agree it's hard to say for certain if this is exclusive to Logitech or if other paired devices might cause a similar issue.

By cross-referencing multiple system logs on my end, I think I’ve narrowed down the potential mechanism. It looks like the N1 chipset might be triggering a repeat DarkWake because it perceives a potential repeat broadcast of connection requests. Ideally, the system should have a way to filter these out after a few failed attempts, but it seems to get stuck.

Based on the logs, the loop appears to look something like this:

  • An unrelated Bluetooth device nearby repeatedly broadcasts a connection request.
  • The MacBook's N1 chipset receives the request.
  • The filtering algorithm may mistakenly find the broadcasting device's ID somewhat similar to a device that is already paired (in this case, the Logi mouse).
  • The MacBook triggers a DarkWake to perform a full connection check.
  • It realizes it's a mistake, and the MacBook goes back to sleep.
  • A new round of requests comes in, and the cycle repeats.

This would explain why it only seems to happen under highly specific conditions—requiring both a paired device and a signal-heavy environment. It also makes sense why not many people have realized the issue. Of course, different users might experience battery drain for entirely different reasons.

There is still a strong possibility that the underlying fault could be related to Logitech. Since neither manufacturer makes their drivers open-source, it's impossible for outsiders to diagnose exactly what is happening under the hood. But at the very least, it feels like we are getting closer to understanding the wake mechanism here.


By the way, I don't experience this issue anymore after using the app I made.

Mar 21, 2026 10:34 PM in response to terriermind

terriermind wrote:

HWTech,

Thank you so much for taking the time to help me.
So, I did one test, in which I undocked properly, closed all apps, and it was unplugged with battery at 100% - I turned the Wifi OFF.
Next morning battery - 100%

So it looks like OS/apps are downloading updates, or you have some file syncing services running & updating overnight. @Grant may have identified one such app "UlyssesMac".


So, last night same conditions, but obviously WITH Wifi.
This morning it was at 75%. I ran the pmset Sleep | Wake command in terminal, and there multiple entries a minute. It was all throughout the night,

Yes, as expected. Sometimes those wake events will provide a reason that may provide a clue, but other times they mean nothing to us unless they can be discerned from the system log. Was hoping to see a few of those Sleep/Wake events....especially the longer duration wake events with the larger battery drains.


and when I tried to isolate it with the log show command to make the wake log , even if I only did a 5 min window it was 3.5MB of text.

Yes, I did mention that. I only provided that option for you to perhaps identify what macOS may have been doing during those longer wake events where the battery drained more drastically. Usually I focus more on the latter half of the wake period. Without knowing the Wake & Sleep event times & reason, the system log is meaningless. Even with that information, you have to just look to see if you can associate a cryptic wake reason with something in that portion of the system log. I only concentrate on events where the wake period & battery drain are largest because it should be easier to identify a longer ongoing event in the system log.


I took a very quick glance at the system log and you have a lot of entries I've never seen in any of my organization's logs. No idea if they may be normal for your system & configuration. I barely look at the logs on my organization's Macs except for certain large wake events or performance issues....and only when my curiosity overwhelms me or I feel like driving myself crazy.


For small wake events & small battery drains, it really isn't worth looking at the system logs. Even for larger events/drains it is debatable if it is really worth it...even then I only give a very quick scan.


Here is a Link to the Wake Log and Its only about 2 minutes of it but it's enough. There's no major drop the drain is even throughout the night.

Then for your configuration & setup this may be normal.


Please, can you help. This MacBook Pro shouldn't be doing this, and because my wifi test proved its not hardware and the battery is fine,

I never thought the hardware was bad. My first instinct was some sort of online service (updates, or syncing).


Since turning off WiFi stopped the battery drain.... you need to look at any apps & services with an online component that may be updating or syncing. Maybe disable them one at a time until you find the culprit.


and I haven't done anything funky to any settings, installed any weird programs. I'd be grateful for any help you can give.

Sometimes I consider the macOS default settings & options to be "funky". macOS can allow some configuration settings that do things people don't expect with all sorts of side effects. Apple is sometimes its own worst enemy. It doesn't help that Apple's documentation on various features & services is lacking in sufficient details. I don't think Apple really understands much of their own OS these days.


Anything with an online component could be causing the battery drain. You just need to start disabling such apps & services one at a time until you find the culprit(s).


Or as others have already mentioned, leave the laptop connected to the power adapter whenever possible. Or you can completely power off the laptop overnight. I would say these two options will be simpler than trying to pin point multiple wake events draining the battery in small bits especially if your battery runtime during the day is fine.

Jun 24, 2026 1:34 AM in response to HWTech

Hello HWTech, thank you for your feedback.


I'm new to Mac. I've recently switched from Windows, where as you probably may know, Modern Standby is giving a lot of similar "problems"... well not exactly the same though, because it's even worse, but on Windows there's a simple solution, which of course would not be great for everyone, but it is simple --> replace Sleep by Hibernation.

As we know it's not possible on MacOS. I've found some topics about the Darkwakes on MacOS but without a proper solution (maybe I didn't dig enough) so I used Gemini for "help".


As you suggested pluging in the power or shuting down the Mac is not a solution it's just a way around that doesn't solve the problem, where for example you have to always remember about shutting down your Mac or turning off Wi-Fi/BT each time you leave home. That shouldn't be the case. If MacOS would allow us to use some appstore app to do it automaticaly, then I wouldn't have to use any scripts... but it's not the case also.


BTW, sorry for my english, I'm trying my best :)


Below is the updated instruction from Gemini:


"REVISED: Apple Silicon Battery Drain Fix (SMC.OutboxNotEmpty)

Following valid feedback from the community regarding modern macOS syntax and system safety, here is the updated, non-destructive method.

1. Advanced Diagnostics (Finding the culprit)

If you want to investigate if your drain is caused by a user-space process (like iCloud syncing) or raw hardware interrupts, isolate the sleep/wake entries:

Bash


pmset -g log | grep -E 'Sleep |Wake '

To pull the exact system logs for the drain period, run:

Bash


sudo log show --start "YYYY-MM-DD HH:MM:SS" --end "YYYY-MM-DD HH:MM:SS" > ~/Desktop/system-log-battery-drain.txt

Note: If the log shows millions of lines with zero application process names mentioned during the wake window, you are dealing with a raw hardware layer loop (SMC.OutboxNotEmpty), which cannot be fixed by modifying software/Cloud settings.

2. The Automated Fix (Updated to modern launchctl syntax)

⚠️ Disclaimer for standard users: This method requires Homebrew. Homebrew modifies your system $PATH. If you prefer a completely vanilla system, your only options are manually toggling Wi-Fi/BT off before closing the lid, or shutting down the Mac.

Step 1: Install Required Binaries

Bash


brew install sleepwatcher blueutil

Step 2: Create the Execution Script

Bash


sudo nano /usr/local/bin/bt-sleep-fix.sh

Paste this code, save (Ctrl+O -> Enter), and exit (Ctrl+X):

Bash


#!/bin/bash
BLUEUTIL="/opt/homebrew/bin/blueutil"

if [ "$1" = "sleep" ]; then
    $BLUEUTIL --power 0
    networksetup -setnetworkserviceenabled Wi-Fi off
elif [ "$1" = "wake" ]; then
    $BLUEUTIL --power 1
    networksetup -setnetworkserviceenabled Wi-Fi on
fi

Apply system-level permissions:

Bash


sudo chmod 755 /usr/local/bin/bt-sleep-fix.sh
sudo chown root:wheel /usr/local/bin/bt-sleep-fix.sh

Step 3: Create the LaunchDaemon Configuration

Bash


sudo nano /Library/LaunchDaemons/com.powerpatrol.btfix.plist

Paste this XML structure, save, and exit:

XML


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.powerpatrol.btfix</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/sbin/sleepwatcher</string>
        <string>-V</string>
        <string>-s</string>
        <string>/usr/local/bin/bt-sleep-fix.sh sleep</string>
        <string>-w</string>
        <string>/usr/local/bin/bt-sleep-fix.sh wake</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>

Step 4: Register the Daemon using Modern Syntax (bootstrap)

Bash


sudo launchctl bootstrap system /Library/LaunchDaemons/com.powerpatrol.btfix.plist

Note: Grant Bluetooth TCC (Privacy) permissions to sleepwatcher when prompted on the first wake.

3. How to Completely Remove This Fix (Rollback Scripts)

If you wish to revert everything to stock vanilla macOS, execute these commands:

Bash


# 1. Unboot the daemon using modern syntax
sudo launchctl bootout system /Library/LaunchDaemons/com.powerpatrol.btfix.plist 2>/dev/null

# 2. Clean up files
sudo rm -f /Library/LaunchDaemons/com.powerpatrol.btfix.plist
sudo rm -f /usr/local/bin/bt-sleep-fix.sh

# 3. Uninstall binaries via Homebrew
brew uninstall sleepwatcher blueutil


Of course everything you run/type on terminal is at your own responsibility.

Jul 24, 2026 12:39 PM in response to terriermind

I am experiencing exactly the same issue (M5 Pro with Tahoe 26.5.2). I found the issue when I put the laptop in the sleeve for long time and found it got hot and its battery drained. I did a lot of experiments with the help of gpt, and here are some findings:

  1. It only happens when bluetooth is on. Wifi does not matter.
  2. Weirdly, it mostly happens when the laptop is in the office environment. It rarely happens when I am home or in outdoor environments, but if it does happen, it can usually recover soon.
  3. It is NOT likely that the issue is related to third party software, including Logi Options+. I can see this issue in both safe boot and normal boot with logi mx master 3/3s connected or not. Also this computer is brand new within the return window, and I haven't installed much stuff.

One thing that I am testing is Turning off "Find my mac". Some preliminary evidence shows that the issue can significantly drop after I turned it off. I still need to do some more ABA tests, and will update soon.

My current theory is that "Find my mac" is constantly sending and receiving signals when there are other apple devices nearby. Based on my understanding, it uses bluetooth mostly to get the data packet. The office environment includes a lot of devices constantly broadcasting data packet, which triggers the insomnia issue.

I am on the fence whether I should make an exchange due to issue. I do worry that this is a hardware issue even though I think it's mostly related to some defects in the firmware.

Mar 18, 2026 6:23 PM in response to terriermind

macOS will constantly wake up the computer when it is sleeping to perform various maintenance functions. Usually these events will use very little power, but it depends on your specific workloads & system configuration. I've seen someone's laptop lose battery charge overnight due to their photos syncing to iCloud.


Here is a better command to use to just get the actual sleep & wake events themselves.....I recommend copying & posting the command since the spaces (exactly two) in the filter are critical to minimizing the lines found & getting the critical lines (as are the uppercase "S" & "W"):

pmset -g log  |  grep  -E  'Sleep  |Wake  '


While the information may vary by version of macOS, at least one of the lines (Sleep and/or Wake) will contain the battery charge level at the time so you can see the progression of the battery charge declining to narrow things down. Also, each line will tell you how long that even lasted in seconds. I have found Sleep sessions may only last for a few minutes up to 20 minutes on average. It has been rare for me to see undisturbed sleep periods covering hours.


The wake reasons can be very cryptic and very difficult to discover the actual reason since the system logs contain thousands of entries per second and may only provide very general insights. Usually the normal Wake times are very short so you should be looking for the longer Wake events & ones where the battery charge drops the most.


You can use the following command template to retrieve the system logs from the time period of the longest most drastic battery drain periods:

log show  --start "YYYY-MM-DD  HH:MM:SS"  --end "YYYY-MM-DD  HH:MM:SS"  >>  ~/Desktop/Logs_Wake_YYYY-MM-DD-HHMM.txt


The ">> ~/Desktop/Logs_Wake_YYYY-MM-DD-HHMM.txt" part will create a new file or append to an existing file on your Desktop called "Logs_Wake_YYYY-MM-DD-HHMM.txt".


Of course replace "YYYY-MM-DD HH:MM:SS" parts with the date & time you are inspecting such as "2026-03-18 08:00:00".


You may want to run the third party app EtreCheck and post the complete report here so we can examine it for clues since third party apps tend to be the usual culprits.


How to use the Add Text Feature When Posting an EtreCheck Report - Apple Community


Jun 23, 2026 8:36 PM in response to flash608

flash608 wrote:
I do have the same problem with darkwakes on battery. It does not happen when I do turn off Wi-Fi and Bluetooth before closing the laptop lid/pressing sleep. Below are my findings using Gemini, where finaly some script is managing turning off/on the wifi/bt automaticly:

So why don't you actually identify the process in macOS which is utilizing the network during that time? I listed some of the most common reasons for battery drain in a previous post in this thread.


1. The Problem
MacBooks (M1 to M5) experience severe battery drain (20-30% overnight) and overheat inside bags due to a persistent DarkWake loop.
Checking pmset -g log reveals repetitive wake triggers every few seconds:

You should be looking for the specific wake instance where you had the most drastic battery drain. If the "pmset" data doesn't give you enough details for the specific reason other than WiFi or Bluetooth, then you should gather the system log during that specific wake period to see what the system activity is showing.


You can first limit the data from "pmset" by using the following command (best to copy & paste it since the two spaces in the grep filter are critical):

pmset -g log |  grep -E  'Sleep  |Wake  '


This will show you just the Sleep & Wake events along with the Battery charge level. Find one with the largest drain. You can then look at the other "pmset" entries between that Wake & Sleep event for more clues. If it doesn't provide enough clues, then gather the system logs for that time period. Here is the command needed to collect those system logs:

sudo  log  show  --start "YYYY-MM-DD HH:MM:SS"  --end "YYYY-MM-DD HH:MM:SS"  >>  ~/Desktop/system-log-battery-drain_YYYY-MM-DD.txt


Replace the "YYYY-MM-DD HH:MM:SS" with the actual date & time in that format. The command will redirect all output to a text file on the Desktop called "system-log-battery-drain_YYYY-MM-DD.txt" so you can more easily search the resulting output. There will be a lot of junk & noise there which can be overwhelming with most of it being irrelevant. Plus you will be contending with hundreds if not thousands of entries per second to sort through with many of them repeating. You may need to compare the events with those from a time when the battery did not drain if you cannot notice the source of the drain.


I know the Macs in my organization will sometimes have multiple DarkWake events every night usually in 5-20 minute increments, but sometimes every minute, other times much longer. However, the battery doesn't usually drain during those DarkWake events.


2. The Manual Fix
Physically disabling radios before closing the lid resets the SMC buffer and stops the loop completely. Turning off both Wi-Fi and Bluetooth via the menu bar toggles guarantees 0% drain.

When I've investigated users' laptops which had a significant battery drain overnight, I have found it is usually related to iCloud file syncing, but any cloud file syncing service could be likely depending on each users custom configurations.


The Automated Fix (Script + Trigger)
This setup uses sleepwatcher to automatically cut off Bluetooth and Wi-Fi the millisecond the lid closes, and restores them within 2 seconds of opening it.
Step 1: Install Required CLI Tools
Install the necessary binaries via Homebrew:

Personally I would advise most people to avoid using Homebrew because it can cause a lot of problems with macOS (broken PATH, and having multiple same name utilities competing with the built-in macOS versions causing compatibility issues).


The command line is very unforgiving and has no safety net. Many times there is no simple way to revert or correct mistakes.


For people wishing to take this approach to automatically disable WiFi and/or Bluetooth, I would certainly try to find a macOS only option to do what you have proposed with these two utilities from Homebrew.


If a person is not going to identify the macOS process (or is unable to identify the process) that is draining the battery during those wake events, then the simplest option is to connect the laptop to power. Or if it is not possible to leave the laptop connected to power overnight, then fully Shutdown the laptop. Problem is easily solved without installing any third party software.


sudo launchctl load -w /Library/LaunchDaemons/com.powerpatrol.btfix.plist

The "load" option is deprecated, so you really should provide the proper command using the newer "bootstrap" option.


Plus you really should also provide instructions for people to remove all this stuff from their system. And provide warnings that Homebrew could potentially cause difficult to solve issues because while it may not have caused problems with your system....other users may have a system where Homebrew could cause major problems.

Jul 24, 2026 9:19 PM in response to zztea

Unfortunately, "Find my mac" is not the culprit since I saw the same destructive pattern in the office environment even though it was already turned off. I tried turning off powernap (pmset -b powernap 0), it seems not the main contribution. However, after I turned off tcpkeepalive, for now, I do not see such pattern even though "Find my mac" is on.

Jul 31, 2026 12:35 AM in response to terriermind

I’ve put together a small tool that works as a temporary workaround for this issue. It’s based on the method originally shared by @flash608.


Once the tool is running, it automatically turns Bluetooth off whenever your MacBook goes to sleep. When the Mac wakes up again, it restores Bluetooth to whatever state it was in before—so if Bluetooth was on, it turns it back on, and if it was already off, it leaves it off.


You can find the latest release here:

https://github.com/zptang1210/BTSleepGuard/releases

Or download the DMG installer directly:

https://github.com/zptang1210/BTSleepGuard/releases/download/v0.1.0/BTSleepGuard-v0.1.0.dmg

Mar 18, 2026 11:58 AM in response to terriermind

Not insight and possibly not a solution. A long time ago I had problems with dark wake waking my Mac up in the night and then causing a crash. I fixed it by setting the standby delay to a long time which, I believe, stopped dark wake happening in the night.


I don't know if this is related to your problem or if it will fix your problem. This was also quite a few OS's ago so it's possible that in today's Macs it might bugger something up and dark wake is needed for something more critical than back then. But it might be a place to start another line of research and you are, of course, welcome to ignore it.


I used


sudo pmset -a standbydelay 86400


86400 is seconds - 24 hrs.



MacBook Pro M5 Pro: DarkWake causing overnight battery drain

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.