I can route to any of the IPs used by my #Unifi gateway over Wireguard, and all the IPs used by the cameras. The web URIs work fine for all the above, and the Unifi Console app works, but the Unifi Protect android app won't. Just throws vague errors, won't even tell me what it's trying to talk to (despite being a product for prosumer/small biz networks?)
As I suspected, they literally hardcode CIDR blocks and other assumptions into the app:
[luna@lunar-exploration-module com.ubnt.unifi.protect]$ rg "192.168" .
./smali_classes5/com/ui/unifi/core/base/utils/StringExtensionsKt.smali
39: const-string v0, "^127.*|^10.*|^172.1[6-9].*|^172.2[0-9].*|^172.3[0-1].*|^192.168.*"