Earlier Unity suddenly started to refuse building and running on my Android phone. The error message was this:

* failed to start daemon
error: cannot connect to daemon

UnityEditor.Android.CommandInvokationFailure: Unable to list connected devices. 
/Applications/Unity/Hub/Editor/2019.4.18f1/PlaybackEngines/AndroidPlayer/SDK/platform-tools/adb devices

stderr[
adb server version (41) doesn't match this client (40); killing...
ADB server didn't ACK
Full server startup log: /var/folders/ym/2b7pw1yn0v71ybqwb07t4vw00000gn/T//adb.501.log
Server had pid: 43718
--- adb starting (pid 43718) ---

What happened is the platform-tools installed by Unity and the one that got installed with Android Studio was different.

So when I ran adb devices manually in the terminal, it ran a different version of the daemon. The fix was to kill the one I had in, then restart Unity.