I tried every fix posted online for this issue and after suffering from it for ~2 years, I finally spent a few hours and achieved this fix. Registered to the forums just to share this in case it helps someone else.
The fix (probably)
What finally got my Sonos macOS app back online after the "Your computer's firewall setting has changed. Your Sonos controller can no longer connect to your Sonos system" error: in-app Uninstall (NOT drag-to-trash) followed by a fresh download from sonos.com.
Important caveat: I tried a lot of other cleanup steps before this worked. I can't say for sure whether the in-app Uninstall alone would have fixed it on a "clean" system, or whether the prior cleanup was a prerequisite. If you're hitting the same error, I'd suggest trying the simple fix first — if it doesn't work on its own, here's everything else I did, in case some of it matters in combination.
Step 1 — Try this first (the simple fix)
This is the step that immediately preceded my Sonos app working again. It may be all you need.
- In the Sonos macOS app menu bar (with Sonos in focus):
Sonos → Uninstall… - Confirm "Yes" and enter your admin password when prompted.
- This is different from drag-to-trash. I had reinstalled via drag-to-trash many times before with no effect. The Sonos menu's
Uninstall…item runs Sonos's own removal script, which cleans up helper components that drag-to-trash leaves behind.
- This is different from drag-to-trash. I had reinstalled via drag-to-trash many times before with no effect. The Sonos menu's
- Download a fresh Sonos for Mac from
https://support.sonos.com/en-us/downloads. - Open the .dmg, drag Sonos into Applications, launch it, connect to your existing system.
If that fixes it for you, you can stop here. If not, read on for everything else I cleaned up before this worked — any of it could matter in your situation.
Step 2 — If Step 1 didn't work, here's everything else I did first
I went through these in roughly this order over a couple of hours. Some of these are common community-recommended fixes that didn't fix it for me on their own, but might have set the stage.
Diagnostic that ruled out a lot of rabbit holes
Open macOS Control Center (toggle icon in top-right menu bar) → click the AirPlay icon next to the volume slider. If you can see your Sonos speakers listed there as AirPlay output targets, then your local network and multicast/Bonjour discovery are fine. AirPlay uses the same Bonjour/mDNS multicast that Sonos relies on. If AirPlay sees them, the issue isn't your router, your macOS firewall, or VPN multicast filtering — it's something specific to the Sonos app or its helpers.
In my case AirPlay saw all my speakers, which told me the error message ("firewall has changed") was misleading. The Sonos app's internal check was failing for a reason that wasn't an actual firewall.
macOS firewall + Local Network permission
- Check
System Settings → Network → Firewall. Either OFF, or ON with Sonos in the allow list set to "Allow incoming connections" (and "Block all incoming connections" unchecked). I tried both states — neither alone fixed it for me. - Check
System Settings → Privacy & Security → Local Network. Sonos should be toggled ON. The widely-cited community fix is to toggle it OFF, wait, then toggle it ON — re-establishing the permission grant. Try this. It's commonly the fix on macOS Sequoia/Tahoe. It didn't work for me in isolation, but it's a fast, safe step.
Clean up cached Sonos state (before reinstalling)
After quitting the Sonos app, delete these (some won't exist depending on your install history — that's fine):
~/Library/Preferences/com.sonos.macController2.plist~/Library/Application Support/SonosV2(whole folder)~/Library/Caches/com.sonos.macController2(whole folder)
In Finder, Cmd+Shift+G and paste those paths in. These are user-level files — no admin password needed.
Clean up ExpressVPN remnants (only if you previously had ExpressVPN)
I had previously installed ExpressVPN and uninstalled it by drag-to-trash. That leaves behind kernel-level helpers and config that you can't see without poking around. Even if this turns out not to be the cause of the Sonos error specifically (in my case it wasn't), it's worth cleaning up.
Things I found and removed (most require admin password because they live in system Library folders):
- VPN config profile in
System Settings → VPN("ExpressVPN IKEv2") → click the (i) → Remove Configuration System Settings → General → Login Items & Extensions → Open at Login— remove ExpressVPN and ExpressVPN Launcher entries with the−button/Library/LaunchDaemons/com.expressvpn.expressvpnd.plist(Finder → Cmd+Shift+G → that path → Cmd+Delete, enter admin password). This is the LaunchDaemon that re-launches an ExpressVPN background process on every boot — even though the app is gone. I confirmed it was still active because files in the ExpressVPN data folder had today's timestamp./Library/Application Support/com.expressvpn.ExpressVPN(whole folder, admin password needed)~/Library/Application Support/com.expressvpn.ExpressVPN(whole folder, no admin password)
Also check /Library/LaunchAgents and ~/Library/LaunchAgents for any com.expressvpn.* files. I had none, but it's worth a look.
Reboot
After all the cleanup above, restart the Mac. This:
- Kills any leftover ExpressVPN background process still running in memory
- Flushes kernel-level network filters that might still be loaded
- Applies any pending system-extension updates (printers, tablets, etc. — unrelated, but it'll clear the "Some system software requires your attention" notice in Privacy & Security)
Then do Step 1
In-app Uninstall… from the Sonos menu, fresh download from sonos.com, install. For me, that was the moment it finally worked.
Stuff I tried that probably wasn't necessary
A few things I'd flag as "I tried them but I think they were dead ends":
- Sonos's own "More Options → Reset Controller" — equivalent to deleting the cache files manually. Worth trying but didn't change anything for me.
- Sonos's "Configure Firewall" button — just shows instructions, doesn't actually configure anything. If Sonos couldn't auto-configure the firewall, the button doesn't help.
- Submit Diagnostics — generates a confirmation number for Sonos support but didn't help my self-service debugging.
What was probably going on (best guess)
My theory: drag-to-trash leaves behind one or more Sonos helper components on disk. On subsequent install they aren't refreshed, and one of them is what fails the app's internal "firewall check" on launch. The in-app Uninstall… runs Sonos's own cleanup script which removes those helpers, so a subsequent fresh install starts truly clean. The ExpressVPN cleanup was probably a red herring in my case — but it was a real mess that needed cleaning up regardless.
Good luck. Hope this saves someone the afternoon it cost me.