Skip to content

Connectivity detection issues under VPN and network loss #14528

@valldrac

Description

@valldrac

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

While working on the Molly and UnifiedPush projects, we've identified several inconsistencies in how Android's ConnectivityManager.NetworkCallback reports Internet availability across API levels and configurations. Especially for users with always-on VPNs and kill switch enabled, but also seen it in other cases.

In practice, this can lead to delayed notifications, missed calls, or battery drain. Signal has found similar issues, with recent commits reintroducing deprecated APIs to mitigate them (#14462). We haven't tested this directly in Signal, but it may be related to issues such as #14415, #7733, #8692, #14116.

We think we have a reliable solution using only the NetworkCallback API, following patterns from AOSP and avoiding deprecated APIs. Normally we'd just submit a PR, but there are some differences between Molly and Signal (e.g. proxy handling and minSdk 23 vs 27), so it would need some adaptation and extra testing.

Before doing that work, we wanted to check whether such a PR would be welcome. If so, we're happy to prepare it. We can also share logs and concrete repro steps if that helps.

Screenshots

No response

Device

No response

Android version

No response

Signal version

No response

Link to debug log

No response

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