Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I still don't understand why its so hard to fix it even after some generation of devices. And why don't people care much about this problem?
Everybody is discussing about the fan/heat issue with the MBP 16 but just a handful of people confirm the issue here.
So the question is are there people NOT having this issue with apple watch unlock? Or does nobody use apple watch unlock?

I had this issue with every MBP since 2018 so im just wondering if its possible to use this function without affecting the wifi? I think its a very very useful function if you use the MBP in clamshell mode so you can't use touch id.

I have been experiencing slow WiFi issues on my 2018 MBP for weeks and really thought it was an issue with my Eero Pro even though none of my other devices were having problems. I came across this thread and a few others yesterday so this morning I turned around off unlock with Apple Watch and rebooted. Today my WiFi was solid and matched the speed of my other devices. It makes zero sense to me but I’m glad it fixed it.
 
It makes zero sense to me but I’m glad it fixed it.
Which Generation of Apple Watch do you have? It's sad that it is very hard to find more discussion about that. Maybe e.g. a Series 6 with U1 would not be affected? Or its already fixed with newer Series 5+?

I still can't believe that everybody has this problem but its nearly not discussed somewhere...
 
Which Generation of Apple Watch do you have? It's sad that it is very hard to find more discussion about that. Maybe e.g. a Series 6 with U1 would not be affected? Or its already fixed with newer Series 5+?

I still can't believe that everybody has this problem but its nearly not discussed somewhere...
I have a series 5 watch
 
So I have this problem as well, and disabling Unlock with Apple Watch fixes it. This resolved the issue on both my 2018 MacBook Pro 15, and my 7.1 Mac Pro. Both would be stuck at 27 mbps TX rate when using Unlock with Apple Watch, and disabling it returns network performance to 1,170 TX on unlock.

Apple Watch Series 4, both systems on Catalina latest.
 
Created an account here just to say thank you for sharing. I have had these issues for quite a while now and the customer support was... not helpful. Of course, stuff like resetting SMC and NVRAM did not really help.

I have switched off the AW feature but will still have to see if it really completely fixes the issue on my end. Hopeful for the first time in a quite a while haha - at least that it's not a hardware failure.

(Still not able to comprehend how such a "major" feature (AW unlock) could negatively impact a vital feature (wifi)without Apple doing anything about it).
 
Have just upgraded from a Series 2 to Series 6 watch and it hasn't made any difference, the issue still remains.

This issue has been frustrating me ever since I upgraded my 2012 MacBook to a 16" version. I like AW unlock which worked without a problem on my old MacBook, despite having to replace the wireless card (AW unlock requires 802.11ac, which my MacBook didn't have). I know, it's terribly lazy that I don't even want to reach for the Touch ID sensor, but it's slightly ironic that it worked properly on a laptop which didn't officially support it (albeit with a replacement wifi card) but doesn't work on my 16" MacBook.
 
  • Like
Reactions: DaveXX
If you using MBP in a clamshell mode with external Monitor there is no TouchID anymore so its even worse its not possible to use it.

But the Problem is with apple support is that they will say always sth like:
its just on your MBP. I never heard before about this issue. It's your WiFi Ap, you are the only one in the world who has reported this blah blah blah blah....


And this issue is not really discussed very often so there is no preassure on apple to fix it.
It has something to do that the apple watch has a direct wifi link which cause some issues. but its not permanent just after a while so it should be fixable.

I reported it during BigSur Beta and i got just one time an answer that it should be fixed a few beta before (6?). After that i reported again that the issue is still not fixed but no response anymore...

The only good thing is that i got a MBP 16 instead of my MBP 15 because of this issue. I fought 6 months with apple care until they agree to replace the MBP 2018 because i could proof this issue even in the AppleStore. Sadly the MBP 16 didn't fix anything...
 
Seeing the new posts here, and just an update that I haven't had the issue at all since disabling unlock with Apple Watch. So it's clearly related to that feature (which is great, but not if it kills WiFi).
 
Seeing the new posts here, and just an update that I haven't had the issue at all since disabling unlock with Apple Watch. So it's clearly related to that feature (which is great, but not if it kills WiFi).

Must be some issue with the Bluetooth / Wi Fi mixed signals most likely
 
I have the same problem, but I think the problem is not contains with Macs, I also have this issue with Dell Laptop. I use the Amplify Mesh Router. May be with Mesh settings something wrong?
 
May be with Mesh settings something wrong?
It is very clear that this problem is just related to apple watch unlock. Turn it on: problem exist, turn it off: problem doesn't exist.
The apple watch uses a WDL link with the MBP and this interfere with the wifi of the MBP.

I could even reproduce this issue with the AP at the apple store and i have access to professional wifi ap hardware. And as you can see in the screenshots before the signal is not the problem.

The tx rate will just go down and be locked at some weird number 13/14/27 Mbps. Maybe its part of a bugged energy saving algorithm who knows. I couldn't find out until now what triggers the issue. Sometimes its after 1hour and sometimes after 2 or 3 hours and sometimes even two times in a row in a short period.
 
Thanks to this thread I was able to debug the issue with my MacBook Pro. Like many users here I really liked using the "Unlock with Apple Watch" feature but I didn't like it so much that I would give up my reliable wifi :) I put together a few things that were useful to me that I thought others may like.
First, I build a TouchBar button for BetterTouchTool (https://folivora.ai) that showed the txRate scaled from red to green:
JavaScript:
#!/usr/local/bin/node
import { WifiCheck } from './WifiCheck';
import * as chroma from 'chroma-js';
const GREY = '192,192,192,255';
try {
    const lastTxRate = WifiCheck.getCheckResult()?.lastTxRate;
    const scale = chroma.scale(['#f00', '#0f0']).domain([0, 866]).mode('lrgb').correctLightness(true);
    const color = scale(lastTxRate).rgb().join(',');
    console.log("{\"text\":\"" + lastTxRate + "Mbps\",\"background_color\": \"" + color + ",255\"}");
} catch (err) {
    // ignore it since we are running for BTT
    console.log("{\"text\":\"???\",\"background_color\": \"" + GREY + "\"}");
}
import * as child_process from 'child_process';
export class WifiCheck {
    public static getCheckResult(): { lastTxRate: number, state: string } {
        let resultString = undefined;
        try {
            const resultBuffer = child_process.execSync('/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I', {
                timeout: 1000, //1s timeout,
            });
            resultString = resultBuffer.toString();
        } catch (err) {
            // some error with the command
            const status = err.status;
            console.error(`exited with ${status}: `);
            console.error(`\t${err.stdout}`);
            resultString = undefined;
        }
        const resultObject = WifiCheck.objectFromResultString(resultString);
        return resultObject;
    }
    private static objectFromResultString(resultString: string | undefined) {
        const resultObject: any = {};
        if (resultString) {
            const resultLines = resultString.split('\n');
            for (const line of resultLines) {
                const [key, value] = line.replace(/\s+/g, '').split(':');
                const number = Number(value);
                resultObject[key] = !isNaN(number) ? number : value;
            }
        }
        return resultObject;
    }
}

Then, I built a TouchBar button that would show whether or not the awdl0 interface was active:
Bash:
#!/bin/bash
awdlstatus=$(ifconfig awdl0| fgrep status | cut -d: -f2 | sed 's/[[:space:]]*//g')
if [[ "active" == $awdlstatus ]]; then
    echo "{\"text\":\"active\",\"background_color\": \"255,0,0,255\"}"
else
    echo "{\"text\":\"inactive\",\"background_color\": \"192,192,192,255\"}"
fi

Finally, I built a swift script that turns on the awdl0 interface when the computer locks and then turns it off when the computer unlocks. I leave the "Unlock with Apple Watch" setting enabled all the time as this is needed and doesn't actually cause the issue. The issue is with the awdl0 interface being up. I was a bit lazy and just added my user to sudoers as not needed a password to run ifconfig. I could have made a specific script that just bounced the interface and setuid script but I didn't.

Swift:
#! swift
// impl hints from https://github.com/raygesualdo/amiunlocked
import Foundation
if #available(OSX 10.13, *) {
    func runTask(script: String){
        let task = Process()
        task.executableURL = URL(fileURLWithPath: script)
        task.launch()
        task.waitUntilExit()
        let status = task.terminationStatus
        if(status != 0){
            NSLog("Error running process: "+String(status));
        }
    }


    let dnc = DistributedNotificationCenter.default()
    dnc.addObserver(forName: .init("com.apple.screenIsLocked"), object: nil, queue: .main) { notification in
        NSLog("Event: \(notification.name.rawValue)")
        runTask(script: "/Users/andrewjanian/projects/netmon/bin/awdlUp.sh")
    }
    dnc.addObserver(forName: .init("com.apple.screenIsUnlocked"), object: nil, queue: .main) { notification in
        NSLog("Event: \(notification.name.rawValue)")
        runTask(script: "/Users/andrewjanian/projects/netmon/bin/awdlDown.sh")
    }
} else {
    fatalError("Must be on OSX 10.13 or greater")
}


// Let's do this thing!
NSLog("Process: started")
RunLoop.main.run()

Since making all these changes I have been able to have Unlock with Apple watch working fine AND stable wifi. If anyone has any questions let me know. I have also reached out to someone who is close to the Apple team to see if they could share the information on this thread and show them how bad of an issue this is.

I should also point out:
1) This post was really helpful to me to help understand what was going on technically
2) I think one reason that this isn't getting more traction with Apple is that it only really happens when you are on a 5Ghz wifi channel that is 80Mhz wide. If you change the width to 40 or 20Mhz then you don't get the issue. I have a Google WiFi mesh and don't have control of the channel width. For most users that have the router that came with their cable modem I don't think they will have this issue.
 
I have an AVM cable router (6591) like most of the german users. I just set 5ghz to channel 48 with 5240-5260mhz. So its just 20Mhz width but still have the issue.
I read already in another thread that awdl0 interface is the problem but never really understood the real issue here. (to be honest still don't understand) -> i think it was here: https://discussions.apple.com/thread/8531525?page=9
 
Has anyone confirmed if this still happens under Big Sur?
yes it does. i even mad a bug request during beta and got the information it got maybe fixed but wasn't fixed. its maybe a bit better so even if the tx rate is down you still have a little bit speed left (before you couldn't load any website anymore) but still broken.
 
Thanks to this thread I was able to debug the issue with my MacBook Pro. Like many users here I really liked using the "Unlock with Apple Watch" feature but I didn't like it so much that I would give up my reliable wifi :) I put together a few things that were useful to me that I thought others may like.
First, I build a TouchBar button for BetterTouchTool (https://folivora.ai) that showed the txRate scaled from red to green:
JavaScript:
#!/usr/local/bin/node
import { WifiCheck } from './WifiCheck';
import * as chroma from 'chroma-js';
const GREY = '192,192,192,255';
try {
    const lastTxRate = WifiCheck.getCheckResult()?.lastTxRate;
    const scale = chroma.scale(['#f00', '#0f0']).domain([0, 866]).mode('lrgb').correctLightness(true);
    const color = scale(lastTxRate).rgb().join(',');
    console.log("{\"text\":\"" + lastTxRate + "Mbps\",\"background_color\": \"" + color + ",255\"}");
} catch (err) {
    // ignore it since we are running for BTT
    console.log("{\"text\":\"???\",\"background_color\": \"" + GREY + "\"}");
}
import * as child_process from 'child_process';
export class WifiCheck {
    public static getCheckResult(): { lastTxRate: number, state: string } {
        let resultString = undefined;
        try {
            const resultBuffer = child_process.execSync('/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I', {
                timeout: 1000, //1s timeout,
            });
            resultString = resultBuffer.toString();
        } catch (err) {
            // some error with the command
            const status = err.status;
            console.error(`exited with ${status}: `);
            console.error(`\t${err.stdout}`);
            resultString = undefined;
        }
        const resultObject = WifiCheck.objectFromResultString(resultString);
        return resultObject;
    }
    private static objectFromResultString(resultString: string | undefined) {
        const resultObject: any = {};
        if (resultString) {
            const resultLines = resultString.split('\n');
            for (const line of resultLines) {
                const [key, value] = line.replace(/\s+/g, '').split(':');
                const number = Number(value);
                resultObject[key] = !isNaN(number) ? number : value;
            }
        }
        return resultObject;
    }
}

Then, I built a TouchBar button that would show whether or not the awdl0 interface was active:
Bash:
#!/bin/bash
awdlstatus=$(ifconfig awdl0| fgrep status | cut -d: -f2 | sed 's/[[:space:]]*//g')
if [[ "active" == $awdlstatus ]]; then
    echo "{\"text\":\"active\",\"background_color\": \"255,0,0,255\"}"
else
    echo "{\"text\":\"inactive\",\"background_color\": \"192,192,192,255\"}"
fi

Finally, I built a swift script that turns on the awdl0 interface when the computer locks and then turns it off when the computer unlocks. I leave the "Unlock with Apple Watch" setting enabled all the time as this is needed and doesn't actually cause the issue. The issue is with the awdl0 interface being up. I was a bit lazy and just added my user to sudoers as not needed a password to run ifconfig. I could have made a specific script that just bounced the interface and setuid script but I didn't.

Swift:
#! swift
// impl hints from https://github.com/raygesualdo/amiunlocked
import Foundation
if #available(OSX 10.13, *) {
    func runTask(script: String){
        let task = Process()
        task.executableURL = URL(fileURLWithPath: script)
        task.launch()
        task.waitUntilExit()
        let status = task.terminationStatus
        if(status != 0){
            NSLog("Error running process: "+String(status));
        }
    }


    let dnc = DistributedNotificationCenter.default()
    dnc.addObserver(forName: .init("com.apple.screenIsLocked"), object: nil, queue: .main) { notification in
        NSLog("Event: \(notification.name.rawValue)")
        runTask(script: "/Users/andrewjanian/projects/netmon/bin/awdlUp.sh")
    }
    dnc.addObserver(forName: .init("com.apple.screenIsUnlocked"), object: nil, queue: .main) { notification in
        NSLog("Event: \(notification.name.rawValue)")
        runTask(script: "/Users/andrewjanian/projects/netmon/bin/awdlDown.sh")
    }
} else {
    fatalError("Must be on OSX 10.13 or greater")
}


// Let's do this thing!
NSLog("Process: started")
RunLoop.main.run()

Since making all these changes I have been able to have Unlock with Apple watch working fine AND stable wifi. If anyone has any questions let me know. I have also reached out to someone who is close to the Apple team to see if they could share the information on this thread and show them how bad of an issue this is.

I should also point out:
1) This post was really helpful to me to help understand what was going on technically
2) I think one reason that this isn't getting more traction with Apple is that it only really happens when you are on a 5Ghz wifi channel that is 80Mhz wide. If you change the width to 40 or 20Mhz then you don't get the issue. I have a Google WiFi mesh and don't have control of the channel width. For most users that have the router that came with their cable modem I don't think they will have this issue.
@Andrew Janian Would you be kind enough to explain to a coding novice how to set things up to run your script on lock / unlock? I'd love to get this working!!
 
This is fascinating. I have AT&T Fiber and get consistent 450 down and 680 or so up on my MBP 16, on wifi or via ethernet. However, my Alienware laptop get over 900 down and 700 up sitting on the same desk connected to the tab switch and / or same wifi network connection. It does not really cause much of an issue since most website don't allow full speed download, but I am curious as to why.
 
i tested now with the apple watch series 6 and latest big sur version.
The sad thing its now much much worse than before. Before you could just switch off/on your wifi to fix the problem. But now even if you disable apple watch unlock and cycle wifi it will not get fixed. just after a complete restart the wifi is back to normal...
 
Hey everyone,

Could really use some help.

I have a 16 inch MBP, bought it when it came out and still a huge fan of it but I am having ridiculous problems with wifi.

I will put my iPad pro (2018, 11 inch) right next to it and get 4 ping, and around 400 mb/s up and down. My Mac will then show 40+ ping most times, and 20 mb/s download and usually less than 3 mb/s upload. To test my wifi I use Speedtest.net, which I have heard is accurate, but please let me know if it is not. My MacBook itself (when I hold down the option key) says I am fluctuating between 170-220 mb/s but it sure does not feel like it.

This is causing real problems for me when it comes to conference calling and really need to get this problem solved. I have tried so many solutions, including turning off unlock with Apple Watch and everything else recommended.

Please if anyone has any ideas, I will gladly listen. I also went into the apple store today and they ran a diagnostic saying everything is fine.

Thanks once again, I really appreciate it.
 
UPDATE: False alarm on the info I tried below. It didn't fix the problem.

I've been experiencing the same problem with reduced wifi speeds when using the Apple Watch to unlock. I've been working with Apple on this problem now for a couple weeks. The tech called me back last night and said that her team is saying it is related to Symantec antivirus files on my system. I don't have Norton or Symantec installed anymore. However, I know that they can leave residual files so I found the following page and downloaded and ran that uninstaller app.
So far, fingers crossed, since I did this and restarted, my speeds are back to normal when I have the Apple Watch unlock turned on. I'm not going to get too excited until I keep using my Mac more, but so far it seems to have done the trick. I'll report back if anything changes.
 
Last edited:
I made even a complete new install and it will not change anything... it's the typical apple **** to annoy you... We don't know anything, we heard about the issue the first time, please uninstall everything, make 20 resets, add a testuser, oh i see you have istat menus i think this will cause the issue blah blah blah.....

I still don't understand why this issue doesn't have 2000 posts so apple will at least get some attention to it.... its like just 5 users use wifi and apple watch... the rest doesn't have an apple watch or no wifi connection?
 
I made even a complete new install and it will not change anything... it's the typical apple **** to annoy you... We don't know anything, we heard about the issue the first time, please uninstall everything, make 20 resets, add a testuser, oh i see you have istat menus i think this will cause the issue blah blah blah.....

I still don't understand why this issue doesn't have 2000 posts so apple will at least get some attention to it.... its like just 5 users use wifi and apple watch... the rest doesn't have an apple watch or no wifi connection?
I'm guessing the reason you don't see more posts on this issue is that most people don't realize their watch is causing the problem. They just know their internet is slow and maybe contact Apple and they can't fix it. I stumbled upon this page and thought to myself, "that can't be the problem", and was shocked to see that it was. Now Apple wants me to create log files for my watch. It happened with two of my watches so far so there is nothing wrong with my watch. I also shared this thread with them.
 
I'm guessing the reason you don't see more posts on this issue is that most people don't realize their watch is causing the problem. They just know their internet is slow and maybe contact Apple and they can't fix it. I stumbled upon this page and thought to myself, "that can't be the problem", and was shocked to see that it was. Now Apple wants me to create log files for my watch. It happened with two of my watches so far so there is nothing wrong with my watch. I also shared this thread with them.
If this would be a new issue...

But look here:
Original Apple Discussion forum... this issue is at least known since High Sierra and i had it already with my MBP 2018...

I reported this issue already many times... they just play dumb... i can't believe that apple still cannot reproduce it... seems to a bigger issue so they just pretend to be stupid and annoy you as long you give up...

I played their game and annoyed them so long until they gave me MBP 16 for free in exchange to my MBP 15 2018 but in the end nothing changed... same issue doesn't matter if Apple Watch Series 4 or 6, MBP 13, 15, 16 or whatever... I had just hope because of the U1 Chip which would not require wifi to unlock but no..
 
I received a call from the Apple support rep I've been working with and supposedly the engineers have been unable to replicate the problem. They wanted to do more logging on my devices and I said no. I give up. I'll just keep this feature turned off since faster wifi is more important to me than the watch unlock option. Plus, I don't have anymore time to waste with the support team.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.