Android App Not Redirecting After Google Search

Tapping a Google search result opens the browser instead of the app. The culprit is usually Android App Links verification or a broken intent filter, not the app itself.

You tap a search result on Google, fully expecting your Android app to open. Instead, Chrome loads the mobile site. Annoying. This happens most often on Android 12 and later, especially with apps built using autoVerify="true" in the intent filter. The trigger is usually a Google search result for a URL that your app claims to handle, but Android doesn't trust the association.

What's actually happening here is a verification handshake that failed silently. Android checks a file on your server called assetlinks.json. If that file is missing, malformed, or served over HTTP instead of HTTPS, the system won't link your app to the domain. Google search results then fall back to the browser because the OS never confirmed your app as a trusted handler.

Why Android App Links fail after a Google search

App Links aren't the same as custom scheme deep links. They require a digital asset link between your website and your app. The flow works like this: you declare an intent filter with android:autoVerify="true", Android fetches https://yourdomain.com/.well-known/assetlinks.json, and if the fingerprint and package name match, the app gets verified. Skip any step and Android treats the link as a normal web URL. It opens the browser. No error dialog, no toast — just silence.

Common triggers include moving your site to a new domain, rotating your signing key without updating the assetlinks file, or testing on a device that hasn't re-verified since the last app update. I've seen this on Pixel 6 and Samsung Galaxy S22 devices running Android 13 where the app was installed from the Play Store but the assetlinks file had a typo in the SHA-256 fingerprint.

Fix it step by step

  1. Check your intent filter. Open AndroidManifest.xml and confirm the activity has the right structure. It should look like this:
<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https"
          android:host="yourdomain.com"
          android:pathPrefix="/products" />
</intent-filter>

If autoVerify is missing or set to false, Android won't even try to verify. Also make sure the scheme is https, not http. App Links only work with HTTPS.

  1. Verify your assetlinks.json file. It must be accessible at https://yourdomain.com/.well-known/assetlinks.json with a Content-Type: application/json header. The file content should be:
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourpackage",
    "sha256_cert_fingerprints": ["XX:XX:XX:..."]
  }
}]

Get the correct SHA-256 fingerprint by running keytool -list -v -keystore my-release-key.keystore for release builds. Don't use the debug keystore fingerprint unless you're testing a debug build. A single wrong character breaks the whole chain.

  1. Force re-verification on the device. After fixing the server file, Android won't automatically re-check. You need to trigger it manually. Connect the device via USB and run:
adb shell pm verify-app-links --re-verify com.yourpackage

Then check the status:

adb shell pm get-app-links com.yourpackage

You want to see verified next to your domain. If it says none or legacy_failure, the verification didn't pass.

  1. Clear Google app data if needed. Google search results are cached. On some devices, especially Xiaomi and Oppo models, the Google app holds onto old link handling behavior. Go to Settings → Apps → Google → Storage → Clear cache. Don't clear data unless you want to re-login. Reboot the phone afterward. This step seems dumb but it fixes about 20% of stubborn cases.

    1. Test with a real Google search. Don't just tap a link from a messaging app. Open Chrome, search for a URL that your app handles, and tap the result. If it opens the app, you're done. If not, move to the next section.

    If it still fails

    Check the server response headers. Use curl -I https://yourdomain.com/.well-known/assetlinks.json. You should see 200 OK and the correct content type. A 301 redirect to a different path will break verification. Also confirm your SSL certificate is valid — Android won't fetch the file over a self-signed or expired cert.

    Look at Logcat while tapping the link. Filter for AppLinks or IntentFilter. You'll often see Verification failed with a reason like no matching package or cert mismatch. That tells you exactly which part is wrong.

    Finally, check if you're using multiple signing keys. If your app is distributed via Play App Signing, Google re-signs your APK. The SHA-256 fingerprint in your assetlinks.json must be the one from the Play Console, not your local upload key. This trips up tons of developers. Go to Play Console → Release → Setup → App signing and copy the fingerprint from there.

    One more gotcha: if your app targets Android 12 or higher, you need to declare <queries> in the manifest for certain intents, though that's less common for App Links. The real fix is almost always the assetlinks.json file. Get that right and the redirect works.

Related Errors in Mobile – Android
Unfortunately, Settings has stopped Android 'Unfortunately, Settings Has Stopped' Fix That Works Google Play Services keeps stopping Fix 'Google Play Services Keeps Stopping' on Android Unfortunately, Settings has stopped Android 'Unfortunately, Settings has stopped' crash fix Android Not Sending Texts: Fixes That Actually Work

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.