diff --git a/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt b/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt
index a0283a807..b463b73be 100644
--- a/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt
+++ b/kotlin/android/app/src/main/java/dev/firezone/android/tunnel/TunnelService.kt
@@ -196,6 +196,11 @@ class TunnelService : VpnService() {
"disallowedApplications",
) { addDisallowedApplication(it) }
+ // Never route GCM notifications through the tunnel.
+ addDisallowedApplication("com.google.android.gms") // Google Mobile Services
+ addDisallowedApplication("com.google.firebase.messaging") // Firebase Cloud Messaging
+ addDisallowedApplication("com.google.android.gsf") // Google Services Framework
+
tunnelRoutes.forEach {
addRoute(it.address, it.prefix)
}
diff --git a/website/src/components/Changelog/Android.tsx b/website/src/components/Changelog/Android.tsx
index feecac32c..a6a9e49f9 100644
--- a/website/src/components/Changelog/Android.tsx
+++ b/website/src/components/Changelog/Android.tsx
@@ -16,6 +16,10 @@ export default function Android() {
Adds always-on error reporting using sentry.io.
+
+ Fixes an issue where notifications would sometimes not get delivered
+ when Firezone was active.
+