Skip to content

Avoid collision with Intent message_id from FCM - #7283

Merged
jpelgrom merged 1 commit into
mainfrom
fix/fcm_message_id_collision
Jul 31, 2026
Merged

Avoid collision with Intent message_id from FCM#7283
jpelgrom merged 1 commit into
mainfrom
fix/fcm_message_id_collision

Conversation

@TimoPtr

@TimoPtr TimoPtr commented Jul 31, 2026

Copy link
Copy Markdown
Member

Summary

The NFCWriteActivity was using an extra message_id that collide with the internals of FCM messaging analytics interface. We are not using the interface since the analytics are not enabled but it still throw a log at us

2026-07-31 09:40:05.720  9716-9716  Bundle                  io....stant.companion.android.debug  W  Key message_id expected String but value was a java.lang.Integer.  The default value <null> was returned.
  2026-07-31 09:40:05.720  9716-9716  Bundle                  io....stant.companion.android.debug  W  Attempt to cast generated internal exception:
  java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
      at android.os.BaseBundle.getString(BaseBundle.java:1454)
      at com.google.firebase.messaging.MessagingAnalytics.getMessageId(MessagingAnalytics.java:422)
      at com.google.firebase.messaging.FcmLifecycleCallbacks.logNotificationOpen(FcmLifecycleCallbacks.java:83)
      at com.google.firebase.messaging.FcmLifecycleCallbacks.onActivityCreated(FcmLifecycleCallbacks.java:56)
      at android.app.Application.dispatchActivityCreated(Application.java:382)
      at android.app.Activity.dispatchActivityCreated(Activity.java:1604)
      at android.app.Activity.onCreate(Activity.java:1929)
      at androidx.core.app.ComponentActivity.onCreate(ComponentActivity.kt:68)
      at androidx.activity.ComponentActivity.onCreate(ComponentActivity.kt:343)
      at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:216)
      at io.homeassistant.companion.android.Hilt_BaseActivity.onCreate(Hilt_BaseActivity.java:55)
      at io.homeassistant.companion.android.BaseActivity.onCreate(BaseActivity.kt:31)
      at io.homeassistant.companion.android.nfc.NfcSetupActivity.onCreate(NfcSetupActivity.kt:57)
      at android.app.Activity.performCreate(Activity.java:9327)
      at android.app.Activity.performCreate(Activity.java:9305)
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1541)

The PR change the name of the extra to be unique.

Copilot AI review requested due to automatic review settings July 31, 2026 09:47
@TimoPtr
TimoPtr requested a review from jpelgrom July 31, 2026 09:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses a noisy Firebase Cloud Messaging (FCM) analytics log caused by an Intent extra key ("message_id") used by NfcSetupActivity, which conflicts with FCM’s internal expectation that message_id is a String. The fix namespaces the extra key to avoid collisions while keeping the intent payload behavior the same.

Changes:

  • Replaced the Intent extra key from "message_id" to a namespaced value ("io.homeassistant.companion.android.extra.MESSAGE_ID") to prevent FCM bundle key collisions.

@jpelgrom
jpelgrom enabled auto-merge (squash) July 31, 2026 10:19
@jpelgrom
jpelgrom merged commit e8ed93c into main Jul 31, 2026
25 checks passed
@jpelgrom
jpelgrom deleted the fix/fcm_message_id_collision branch July 31, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants