Live Updates troubleshooting
The SDK reports each dropped Live Update, and each notification that cannot be promoted to a Live Update, as a diagnostic event on the Mobile Core event hub. Inspect these events with Adobe Experience Platform Assurance, together with the verbose logs (MobileCore.setLogLevel(LoggingMode.VERBOSE)).
data-variant=info
data-slots=text
Diagnostic events
Live Update Render Errorno_plugincom.adobe.eventType.messagingcom.adobe.eventSource.errorResponseContentLive Update Incompatiblecom.adobe.eventType.messagingcom.adobe.eventSource.errorResponseContentEvent data
The two dispatchers place the reason code in different keys.
Events from the Live Updates SDK
Every reason except no_plugin comes from the Live Updates SDK. The event data holds an xdm object with the same shape as the Live Update tracking events:
{
"xdm": {
"eventType": "liveUpdateTracking.renderError",
"pushNotificationTracking": {
"pushProvider": "fcm",
"pushProviderMessageID": "order_1234"
},
"_experience": {
"customerJourneyManagement": {
"messageProfile": {
"channel": {
"_id": "https://ns.adobe.com/xdm/channels/liveactivity"
}
},
"pushChannelContext": {
"platform": "fcm",
"liveActivity": {
"liveActivityID": "order_1234",
"channelID": "order_1234",
"event": "outdated_timestamp"
}
}
}
}
}
}
xdm.eventTypeliveUpdateTracking.renderError for a render error, or liveUpdateTracking.incompatible for an incompatibility issue.xdm._experience.customerJourneyManagement.pushChannelContext.liveActivity.eventxdm._experience.customerJourneyManagement.pushChannelContext.liveActivity.liveActivityIDnotification_id. Also set in xdm.pushNotificationTracking.pushProviderMessageID.xdm._experience.customerJourneyManagement.pushChannelContext.liveActivity.channelIDtopic_name, or an empty string when it is absent.When the push carries _xdm, its contents (such as _experience.customerJourneyManagement.messageExecution) are also copied into xdm, so the event identifies the originating campaign or journey. The event is reported even when the push has no _xdm.
Event from the Adobe Journey Optimizer extension
The Adobe Journey Optimizer extension reports no_plugin, because the Live Updates SDK never receives the push. Its event data is:
categoryliveUpdateTracking.renderErrorsubcategoryno_pluginxdm_xdm, unchanged. Absent when the push has no _xdm.Render errors
Reported as Live Update Render Error. Dropped means no notification is posted, no tracking event is sent, and no listener callback is called.
no_pluginLiveUpdatePlugin with MobileCore.addPlugins(...).invalid_event_typeevent_type is not start, update, end, or localstart.invalid_timestamptimestamp is more than 28 days old.outdated_timestamptimestamp is not newer than the last push accepted for the same notification_id and notification_channel_id.style_nullnull. The notification is posted without a style.notification_permission_missingPOST_NOTIFICATIONS was not granted. The notification is posted, but Android does not display it.A push whose adb_liveupdate_data value is not valid JSON, or is missing a required field, is dropped with a warning log and no diagnostic event.
Incompatibility issues
Reported as Live Update Incompatible. None of these drop the Live Update: the notification is posted as a standard ongoing notification instead of a promoted Live Update. See Promotion to a Live Update, and Live Updates in the Android documentation for the promotion requirements.
device_api_below_36not_promotableNotification.hasPromotableCharacteristics() is false, for example because the notification has no title or its style is not allowed for Live Updates.channel_not_registeredchannel_importance_lowIMPORTANCE_HIGH.promotion_not_permittednotification_manager_unavailableNotificationManager was not available.Use the events in a rule
Because the events are dispatched on the event hub, a rule can match them for processing on the device:
- Match the event with
~typeequal tocom.adobe.eventType.messagingand~sourceequal tocom.adobe.eventSource.errorResponseContent. - Read the reason from
xdm._experience.customerJourneyManagement.pushChannelContext.liveActivity.eventfor events from the Live Updates SDK, or fromsubcategoryforno_plugin.
Nested keys are matched by their flattened, dot-separated path. See Event data key flattening in the Rules Engine technical details.
Local start is reported only after a push
A Live Update raised with triggerLocalLiveUpdate and EVENT_TYPE_LOCAL_START is posted and calls onStart, but no tracking event is sent at that point, because a local start has no _xdm to tie it to a campaign or journey. The SDK records the local start and reports it later, when a push from Adobe Journey Optimizer arrives that:
- has the same
notification_idandnotification_channel_idas the local start, - has an
event_typeofstart,update, orend, - has a newer
timestamp(epoch seconds) than the local start, - passes your interceptor, and
- carries
_xdm.
The SDK then sends two liveUpdateTracking.received events back to back, both carrying that push's _xdm:
liveupdate_localstart, stamped with the time of the local start.- The push's own event:
liveupdate_start,liveupdate_update, orliveupdate_end.
The local start is reported once. Until then:
- A push whose
timestampis not newer than the local start is dropped (outdated_timestamp), and the local start stays unreported. - A push without
_xdmsends no tracking event, so the local start stays pending for a later push. - A local start that is never reported is discarded after 28 days.