Component: firebase-installations (Android)
Firebase BOM: migrated from 24.6.0 → 34.5.0 during an application update
Platform: Android
Reproducible in internal testing or UAT: No (see details below)
Summary
After upgrading from Firebase BOM 24.6.0 to 34.5.0, the deprecated FirebaseInstanceId API was replaced with FirebaseInstallations as required by the migration. These two APIs produce identifiers of a different format and length:
| API |
Example ID |
Length |
Format |
FirebaseInstanceId (old) |
cqQdF_tJux8 |
~11 chars |
Instance ID |
FirebaseInstallations (new) |
elKPQ-9JTFyHlhdRQmuTDG |
~22 chars |
Firebase Installation ID (FID) |
By our testing and understanding, the Firebase SDK includes a migration path intended to preserve the existing Instance ID.
However, in production this migration fails silently for a significant subset of users, generating a new 22-character FID instead of returning the preserved 11-character Instance ID.
Impact
Production log analysis from a 15-hour window covering 333 unique Android users
- 209 users (62.8%) — migration succeeded, existing Instance ID preserved
- 124 users (37.2%) — migration failed, new FID generated, device ID no longer matches server-stored value
Key Observations from Production Logs
-
The different behavior is not tied to device brand, Android version, or any identifiable client-side variable. Identical device models show both outcomes.
-
Format difference is the only discriminating signal. Failed attempts present a 22-character FID. Successful attempts present the original 11-character Instance ID. This format difference is the sole consistent distinguishing factor between the two groups.
-
Not reproducible in internal testing. Testing across more than a dozen devices of varying brands and Android versions did not reproduce the failure. The Firebase migration logic that determines whether a cached Instance ID is available is not publicly documented.
-
User base is located in Australia.
Questions for the Firebase Team
- What are the exact conditions under which
FirebaseInstallations will not preserve an existing FirebaseInstanceId during migration?
- Is there a known issue with the migration path in specific BOM version ranges between 24.6.0 and 34.5.0?
Environment
- Firebase BOM (before):
24.6.0 — using firebase-iid / FirebaseInstanceId
- Firebase BOM (after):
34.5.0 — using firebase-installations / FirebaseInstallations
Component: firebase-installations (Android)
Firebase BOM: migrated from 24.6.0 → 34.5.0 during an application update
Platform: Android
Reproducible in internal testing or UAT: No (see details below)
Summary
After upgrading from Firebase BOM 24.6.0 to 34.5.0, the deprecated
FirebaseInstanceIdAPI was replaced withFirebaseInstallationsas required by the migration. These two APIs produce identifiers of a different format and length:FirebaseInstanceId(old)cqQdF_tJux8FirebaseInstallations(new)elKPQ-9JTFyHlhdRQmuTDGBy our testing and understanding, the Firebase SDK includes a migration path intended to preserve the existing Instance ID.
However, in production this migration fails silently for a significant subset of users, generating a new 22-character FID instead of returning the preserved 11-character Instance ID.
Impact
Production log analysis from a 15-hour window covering 333 unique Android users
Key Observations from Production Logs
The different behavior is not tied to device brand, Android version, or any identifiable client-side variable. Identical device models show both outcomes.
Format difference is the only discriminating signal. Failed attempts present a 22-character FID. Successful attempts present the original 11-character Instance ID. This format difference is the sole consistent distinguishing factor between the two groups.
Not reproducible in internal testing. Testing across more than a dozen devices of varying brands and Android versions did not reproduce the failure. The Firebase migration logic that determines whether a cached Instance ID is available is not publicly documented.
User base is located in Australia.
Questions for the Firebase Team
FirebaseInstallationswill not preserve an existingFirebaseInstanceIdduring migration?Environment
24.6.0— usingfirebase-iid/FirebaseInstanceId34.5.0— usingfirebase-installations/FirebaseInstallations