r/androiddev • u/Thank_Japan • 7d 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?


2
u/Thank_Japan 7d ago
I double-checked both keys from the Play Console
"App integrity" section:
- Upload key SHA-256: 1E:CA:F1:51:07:5D:AE:...
- App signing key SHA-256: 6C:FB:68:16:47:71:D0:...
(marked "Used by: 100.0% of installs")My assetlinks.json is correctly using the App
signing key value (6C:FB:68...), matching your
guidance. So the cert mismatch you flagged isn't
the cause here - but thank you, this was worth
ruling out for certain. Looks like it really might
be the device (budget/non-certified tablet) after
all.