Skip to content

Cannot make calls while connected to split-tunnel VPN unless app is excluded from VPN #14690

@GigabyteProductions

Description

@GigabyteProductions

Guidelines

  • I have searched searched open and closed issues for duplicates
  • I am submitting a bug report for existing functionality that does not work as intended
  • This isn't a feature request or a discussion topic

Bug description

Please see #13209#issuecomment-4147062711 for original context.

I've setup OpenVPN for Android, specifically only to route an RFC1918 private IPv4 subnet and an RFC4193 private IPv6 subnet. There are no default routes or DNS overrides through the VPN. This is purely a "split tunnel" VPN by classical definition, in that the VPN adds supplemental routes to the routing table rather than hijacking all internet connectivity, not to be confused with Android's VPN app exclusions functionality that several people call "split tunneling".

It looks like other people have also experienced this issue while utilize Wireguard, with the common factor being that 0.0.0.0/0 or ::/0 are NOT routed through the VPN; internet connectivity is still wifi/cellular while the VPN is enabled.

For me, Signal appears to be failing to make new connections after the VPN is connected. More specifically:

  1. Signal failed to initiate/receive calls when connecting the VPN after WebSocket was already established, but messaging still worked
  2. Signal failed to send/receive messages after killing/reopening the app (I encountered this recently but I was unable to reproduce this on a second phone)

Furthermore, this same behavior regarding split tunnels was also identified 6 years ago; the user claims that switching to a full VPN configuration allowed Signal to make calls. See: https://www.reddit.com/r/signal/comments/eshchu/comment/ff9yt0u/

I was able to work around the issue and get Signal to work with my split tunnel VPN active by excluding Signal in the OpenVPN profile's "allowed apps" settings... This may also become easier to configure for other VPN apps in Android 17. I was also able to again reproduce the issue after removing Signal from the OpenVPN profile's "allowed apps" setting.

Screenshots

While attempting a call from either end, the other end will have this "Connecting..." notification:

Image

After attempting a call from either end, that end will receive this "Network failed!" error:

Image

Device

Fairphone 5 (FP5), Google Pixel XL (marlin)

Android version

14, 16

Signal version

8.2.2, 8.4.1

Link to debug log

https://debuglogs.org/android/8.2.2/6be3633ee3bd045624084b67222aea802839f30a8f871e915480afd073a19109

The log was collected after performing the following actions:

  1. Boot phone with split-tunnel VPN connected
  2. Message from working phone to test phone (works)
  3. Message from test phone to working phone (works)
  4. Call from working phone to test phone (fails)
  5. Call from test phone to working phone (fails)
  6. Disconnect split-tunnel VPN
  7. Call from working phone to test phone (works)
  8. Call from test phone to working phone (works)
  9. Reconnect split-tunnel VPN
  10. Call from test phone to working phone (fails)
  11. Call from working phone to test phone (fails)
  12. Log captured

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions