Skip to content

FirebaseInstallations migration from FirebaseInstanceId generates new device ID after BOM upgrade (24.6.0 → 34.5.0) #8053

@advantagepsteam-collab

Description

@advantagepsteam-collab

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

  1. The different behavior is not tied to device brand, Android version, or any identifiable client-side variable. Identical device models show both outcomes.

  2. 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.

  3. 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.

  4. User base is located in Australia.


Questions for the Firebase Team

  1. What are the exact conditions under which FirebaseInstallations will not preserve an existing FirebaseInstanceId during migration?
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions