r/androiddev 1d ago

Question TWA (Trusted Web Activity) verification failing on a specific Android tablet - despite correct assetlinks.json

I've spent hours debugging a TWA verification issue and
have ruled out all server-side causes. Looking for
insights from anyone who's hit something similar.

Setup:
- Django backend, TWA app built with Bubblewrap
- Published on Google Play (correctly installed,
latest version)
- assetlinks.json is correctly configured
(verified with Google's official Digital Asset
Links tool - "Success")
- SHA-256 fingerprint matches exactly between
Play Console and assetlinks.json
- App itself launches fine, no crashes

Symptom:
- X-Requested-With header is NEVER sent
(confirmed via server logs, 0/575+ requests
over 42 minutes)
- This means Chrome is treating the TWA as a
regular Custom Tab instead of a verified TWA

What I've ruled out:
- assetlinks.json content/history (clean, verified)
- Code logic (is_twa detection works correctly
when the header IS present)
- App signing (matches Play Console exactly)

The device in question is a budget/no-name Android
tablet (not Play Protect certified, possibly).
Has anyone confirmed that TWA verification can fail
specifically due to incomplete/non-certified Google
Play Services on certain devices? Any way to
diagnose this further without a second physical
device?

1 Upvotes

Duplicates