John Maguire

Camera App Connection Issues and VPNs on Android Phones


TL;DR: When connected to a VPN app, such as Nebula, Wireguard, or Tailscale, camera apps used to download photos may be unable to access the camera’s network. Some VPN apps may offer the ability to exclude these apps from the VPN connection—otherwise, you must temporarily disconnect from the VPN when using the camera app.


If this is your first time here, I should note that I am a software engineer working on mesh overlay networks, a type of VPN product, at Defined Networking, so I typically have a VPN process running on my Pixel Android phone. I’m also an avid hobbyist photographer, and have owned cameras from a variety of manufacturers, including Sony, Fujifilm, Ricoh, and GoPro.

One constant over the years, regardless of which camera I’m using, has been complaints by users regarding the app used to download photos from the camera. There are many issues with them—poor UX, finicky phone APIs, performance issues, and more—to the point that I have even written my own Android app for Ricoh GR cameras. That said, I’ve noticed a common complaint is inherent to Android itself.

There appears to be a longstanding bug that when a VPN is active, Android apps—even those which have bound themselves to a specific WiFi network for private access to the camera and which use IP space outside of the VPN range—will be unable to access the camera.

While some users may argue this is the correct behavior because a VPN should sit between your phone and access to the rest of the world, this is an over-simplification of VPNs that is often false: VPNs are meant to route only a specific IP range. In the case of some VPNs, this range is 0.0.0.0/0 (denoting “all IP space”)—but this issue affects even VPN apps which only route a range which does not overlap camera network’s IP space (e.g. a VPN set to route only for 192.168.128.0/24 will still break connections to 192.168.0.1.) This is not the expected behavior!

This bug even affects Google applications which use the WiFi IoT APIs, such as Stadia, RCS, and Android Auto (e.g. see this Tailscale issue). Unfortunately, camera manufacturers can’t work around this bug in their apps. It’s only possible to exclude the camera apps from the VPN’s side. While some VPNs such as Tailscale and Wireguard allow you to configure apps to exclude in their settings, others do not—and in this case the only known workaround is to temporarily disable the VPN.


For further reading, here are some examples of this issue on Reddit. I could’ve sworn at one point that I found this exact issue on the Android issue tracker as well, but I can no longer find it.