braze-inc / braze-cordova-sdk

Public repo for the Braze Cordova SDK
https://www.braze.com
Other
21 stars 63 forks source link

Android Capacitorjs Compatibility? #70

Closed Ricardinh0 closed 3 years ago

Ricardinh0 commented 3 years ago

After following this to implement appboy-cordova-sdk on iOS using capacitorjs, I think I'm facing some of the same issues with Android.

I followed the Braze SDK setup and found I was able to register user sessions and changeUser fine. Then I move on to setting up FCM as suggested:

<preference name="com.appboy.firebase_cloud_messaging_registration_enabled" value="true" />
<preference name="com.appboy.android_fcm_sender_id" value="str_***" />

Then the doc's kind of suggest that the rest is automatic(?) as if the Braze SDK would pick up the details and register the device token.

But after building the app I couldn't see the logs showing any attempt to register the device for push messages with Braze. I could see the Braze had formed it's config correctly:

I/Braze v14.0.1 .com.appboy.configuration.RuntimeAppConfigurationProvider: Setting Braze Override configuration with config: BrazeConfig{
    ApiKey = ***
    SdkFlavor = CORDOVA
    IsFirebaseCloudMessagingRegistrationEnabled = true
    FirebaseCloudMessagingSenderIdKey = ***
    }
I/Braze v14.0.1 .com.appboy.Appboy: Appboy outbound network requests are now enabled
I/Braze v14.0.1 .com.braze.configuration.BrazeConfigurationProvider: Found an override api key. Using it to configure Appboy.
I/Braze v14.0.1 .com.braze.configuration.BrazeConfigurationProvider: Found an override api key. Using it to configure Appboy.
I/Braze v14.0.1 .com.appboy.Appboy: Firebase Cloud Messaging found. Setting up Firebase Cloud Messaging.
I/Braze v14.0.1 .com.appboy.Appboy: Automatic ADM registration not enabled in configuration. Braze will not register for ADM.
I/Braze v14.0.1 .bo.app.l4: Geofences implicitly disabled via server configuration.
I/Braze v14.0.1 .bo.app.m1: Location collection disabled via sdk configuration.
I/Braze v14.0.1 .bo.app.p1: Session [***] being sealed because its end time is over the grace period.
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.SessionStateChangedEvent
I/Braze v14.0.1 .bo.app.p1: New session created with ID: ***
I/Braze v14.0.1 .bo.app.m1: Did not request single location update. Location collection is disabled.
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.SessionStateChangedEvent
I/Braze v14.0.1 .bo.app.n1: Completed the openSession call. Starting or continuing session ***
I/Braze v14.0.1 .bo.app.u3: Updating offline Content Cards for user with id: ***
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.ContentCardsUpdatedEvent
D/Capacitor: Handling local request: http://com.simplywallst.app/static/static/BrazeNative.js
I/BrazeCordova: Received changeUser with the following arguments: ["***"]
I/Braze v14.0.1 .com.appboy.Appboy: Received request to change current user *** to the same user id. Doing nothing.
I/Braze v14.0.1 .com.appboy.Appboy: Closed session with ID: ***

Weirdly, I could only see one reference to BrazeCordova in the logs. So then I tested registerAppboyPushMessages from inside the JS side of the application and I was able to push data to Braze. However, this obviously pushed null to Braze as the users device token.

So this led me to thinking that because I'm using CapacitorJs, I'd need to manually register the device token as was the case with iOS:

public class MainActivity extends BridgeActivity {
  private static final String TAG = "Braze";

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final MainActivity applicationContext = this;
    FirebaseMessaging.getInstance().getToken().addOnCompleteListener(task -> {
      if (!task.isSuccessful()) {
        Log.w(TAG, "Exception while registering FCM token with Braze.", task.getException());
        return;
      }

      final String token = task.getResult();
      Appboy.getInstance(applicationContext).registerAppboyPushMessages(token);
    });
  }
}

And this kind of worked, registering a token to the Braze user.

I/Braze v14.0.1 .com.appboy.Appboy: Push token **** registered and immediately being flushed.

But it doesn't seem to update correctly or really work as expected:

So I'm assuming that this cordova plugin isn't compatible with CapacitorJs? And if so, what are the hurdles that need to be jumped over to get it working as expected?

Or is this all expected and am I simply not implementing the flow correctly?

Any guidance would be appreciated.

radixdev commented 3 years ago

Can you provide those same logs, but at the verbose level? See https://www.braze.com/docs/developer_guide/platform_integration_guides/cordova/android_and_fireos/initial_sdk_setup/#setting-extra-configuration and set

    <preference name="com.appboy.android_log_level" value=0 />

in your config.xml. Token registration errors/success should appear in those logs then and we can debug further. Also please post your Firebase sender ID and ensure it matches the one set in your Braze app settings page.

Ricardinh0 commented 3 years ago

Thanks @radixdev

The verbose logging helped a lot with understanding what is going on. From what I've seen, the automatic FCM token retrieval was working and the manual update is unnecessary.

However I'm still not seeing the FCM token being assigned to the user via the braze console. Here's how I tested this out:

  1. Deleted my Braze user
  2. Booted a clean emulator and sign it into google services
  3. Built and installed the app on to the clean emulator device
  4. At this point, when the app started up Braze appeared to initiate correctly, pulling the FCM token and sending it to the correct SDK endpoint with our API key.
  5. Then I signed into our application and saw Braze's changeUser fire correctly and ship the user id, along with the FCM token, to the SDK endpoint.

But as mentioned, when checking the user via the Braze console, I couldn't see the token under the "Engagement" tab.

From there I thought I'd try and test a push notification (despite no token and expecting failure). The test sent successfully, but nothing was received and there was nothing adverse in the Message Activity Logs.

Then I tried an In App Message. The test sent successfully but didn't appear until I exited out of the application, and restarted it (not sure if that is expected).

Here are the logs from that run:

D/BrazeCordova: Parsed numeric preference str_752934569305 into value: 752934569305
D/Braze v14.0.1 .com.appboy.Appboy: Braze.configure() called with configuration: BrazeConfig{
    ApiKey = MY_API_KEY
    SdkFlavor = CORDOVA
    IsFirebaseCloudMessagingRegistrationEnabled = true
    FirebaseCloudMessagingSenderIdKey = 752934569305
    }
I/Braze v14.0.1 .com.appboy.configuration.RuntimeAppConfigurationProvider: Setting Braze Override configuration with config: BrazeConfig{
    ApiKey = MY_API_KEY
    SdkFlavor = CORDOVA
    IsFirebaseCloudMessagingRegistrationEnabled = true
    FirebaseCloudMessagingSenderIdKey = 752934569305
    }
V/Braze v14.0.1 .com.appboy.ui.inappmessage.AppboyInAppMessageManager: Registering InAppMessageManager with activity: MainActivity
D/Braze v14.0.1 .com.appboy.ui.inappmessage.AppboyInAppMessageManager: Subscribing in-app message event subscriber
V/Braze v14.0.1 .com.appboy.Appboy: The instance is null. Allowing instance initialization
V/Braze v14.0.1 .com.appboy.Appboy: The instance is null. Allowing instance initialization
I/Braze v14.0.1 .com.appboy.Appboy: Appboy outbound network requests are now enabled
I/Braze v14.0.1 .com.braze.configuration.BrazeConfigurationProvider: Found an override api key. Using it to configure Appboy.
D/Braze v14.0.1 .com.appboy.Appboy: Braze SDK Initializing
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml integer configuration value with key com_appboy_logger_initial_log_level. Using default value '4'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_logger_initial_log_level and value: 4
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml string configuration value with key com_appboy_custom_endpoint. Using default value 'null'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_custom_endpoint and value: null
D/Braze v14.0.1 .com.braze.images.DefaultBrazeImageLoader: Initializing disk cache
D/Braze v14.0.1 .com.appboy.Appboy: Braze SDK loaded in 35 ms.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Using runtime override value for key: com_appboy_firebase_cloud_messaging_registration_enabled and value: true
I/Braze v14.0.1 .com.appboy.Appboy: Firebase Cloud Messaging found. Setting up Firebase Cloud Messaging.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Using runtime override value for key: com_appboy_firebase_cloud_messaging_sender_id and value: 752934569305
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_push_adm_messaging_registration_enabled. Using default value 'false'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_push_adm_messaging_registration_enabled and value: false
I/Braze v14.0.1 .com.appboy.Appboy: Automatic ADM registration not enabled in configuration. Braze will not register for ADM.
V/Braze v14.0.1 .com.appboy.Appboy: Starting up a new user dependency manager
I/Braze v14.0.1 .com.braze.configuration.BrazeConfigurationProvider: Found an override api key. Using it to configure Appboy.
D/Braze v14.0.1 .com.braze.images.DefaultBrazeImageLoader: Disk cache initialized
I/Braze v14.0.1 .bo.app.d4: Detected SDK update. Clearing config storage. Last SDK version detected: 
D/Braze v14.0.1 .com.appboy.support.StringUtils: Generating MD5 for user id:  apiKey: MY_API_KEY
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml integer configuration value with key com_appboy_session_timeout. Using default value '10'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_session_timeout and value: 10
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_session_start_based_timeout_enabled. Using default value 'false'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_session_start_based_timeout_enabled and value: false
D/Braze v14.0.1 .bo.app.y: Data sync started
V/Braze v14.0.1 .bo.app.h4: Capabilities changed. Min bidirectional bandwidth in kbps: 141000
V/Braze v14.0.1 .bo.app.h4: Capabilities changed. Min bidirectional bandwidth in kbps: 141000
V/Braze v14.0.1 .bo.app.y: Capability change event mapped to network level: GREAT on capabilities: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=141000Kbps LinkDnBandwidth>=141000Kbps SignalStrength: -30 AdministratorUids: [] RequestorUid: -1 RequestorPackageName: null]
V/Braze v14.0.1 .bo.app.y: Capability change event mapped to network level: GREAT on capabilities: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=141000Kbps LinkDnBandwidth>=141000Kbps SignalStrength: -30 AdministratorUids: [] RequestorUid: -1 RequestorPackageName: null]
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml integer configuration value with key com_appboy_trigger_action_minimum_time_interval_seconds. Using default value '30'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_trigger_action_minimum_time_interval_seconds and value: 30
V/Braze v14.0.1 .com.appboy.ui.inappmessage.AppboyInAppMessageManager: Registering InAppMessageManager with activity: MainActivity
D/Braze v14.0.1 .com.appboy.ui.inappmessage.AppboyInAppMessageManager: Removing existing in-app message event subscriber before subscribing new one.
D/Braze v14.0.1 .com.appboy.ui.inappmessage.AppboyInAppMessageManager: Subscribing in-app message event subscriber
V/Braze v14.0.1 .bo.app.k6: Subscribing to trigger dispatch events.
I/Braze v14.0.1 .bo.app.l4: Geofences implicitly disabled via server configuration.
D/Braze v14.0.1 .bo.app.l4: Did not find stored geofences.
D/Braze v14.0.1 .bo.app.k1: Braze geofences not enabled. Geofences not set up.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_enable_location_collection. Using default value 'false'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_enable_location_collection and value: false
I/Braze v14.0.1 .bo.app.m1: Location collection disabled via sdk configuration.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml string array configuration value with key com_appboy_custom_location_providers_list. Using default value '[]'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_custom_location_providers_list and value: []
V/Braze v14.0.1 .bo.app.m1: Using location providers: [NETWORK, PASSIVE]
D/Braze v14.0.1 .bo.app.s1: Started offline AppboyEvent recovery task.
D/Braze v14.0.1 .bo.app.f4: No stored open session in storage.
I/Braze v14.0.1 .bo.app.p1: New session created with ID: c765b327-09ca-4f9d-819d-4820a1fe901d
D/Braze v14.0.1 .bo.app.h0: bo.app.r0 fired: bo.app.r0@52ca656
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.r0 on 2 subscribers.
D/Braze v14.0.1 .bo.app.g0: Session start event for new session received.
D/Braze v14.0.1 .bo.app.n1: Not adding user id to event: {
      "name": "ss",
      "data": {},
      "time": 1.626940530252E9,
      "session_id": "c765b327-09ca-4f9d-819d-4820a1fe901d"
    }
V/Braze v14.0.1 .bo.app.n1: Attempting to log event: {
      "name": "ss",
      "data": {},
      "time": 1.626940530252E9,
      "session_id": "c765b327-09ca-4f9d-819d-4820a1fe901d"
    }
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@da80bc4
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@1baeaad
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
I/Braze v14.0.1 .bo.app.m1: Did not request single location update. Location collection is disabled.
D/Braze v14.0.1 .bo.app.g0: Requesting trigger refresh.
D/Braze v14.0.1 .bo.app.e4: Adding event to storage with uid 9aa0ab09-d85f-4840-bb40-b27d8234879c
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml string configuration value with key com_appboy_server_target. Using default value 'PROD'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_server_target and value: PROD
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@62c6973
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
D/Braze v14.0.1 .bo.app.h0: bo.app.w0 fired: bo.app.w0@44884a9
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.w0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "triggers": true,
        "config": {
          "config_time": 0
        }
      }
    }
V/Braze v14.0.1 .bo.app.g4: Push token cache cleared.
V/Braze v14.0.1 .bo.app.v3: Device object cache cleared.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_automatic_geofence_requests_enabled. Using default value 'true'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_automatic_geofence_requests_enabled and value: true
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@f022a2e
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.SessionStateChangedEvent fired: SessionStateChangedEvent{mSessionId='c765b327-09ca-4f9d-819d-4820a1fe901d', mSessionStateChangeType=SESSION_STARTED}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.SessionStateChangedEvent
V/Braze v14.0.1 .bo.app.p1: Cancelling session seal alarm
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_sdk_authentication_enabled. Using default value 'false'.
D/Braze v14.0.1 .bo.app.h0: bo.app.t0 fired: bo.app.t0@2fbc265
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.t0 on 1 subscribers.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml integer configuration value with key com_appboy_data_flush_interval_great_network. Using default value '10'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_data_flush_interval_great_network and value: 10
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_sdk_authentication_enabled and value: false
D/Braze v14.0.1 .bo.app.y: Data flush interval has changed from -1 ms to 10000 ms after connectivity state change to: GREAT and session state: OPEN_SESSION
D/Braze v14.0.1 .bo.app.y: Posting new sync runnable with delay 10000 ms
I/Braze v14.0.1 .bo.app.n1: Completed the openSession call. Starting or continuing session c765b327-09ca-4f9d-819d-4820a1fe901d
D/Braze v14.0.1 .bo.app.o1: Messaging session not started.
V/Braze v14.0.1 .bo.app.n1: Opened session with activity: MainActivity
D/Braze v14.0.1 .bo.app.k1: Braze geofences not enabled. Not requesting geofences.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Using runtime override value for key: com_appboy_sdk_flavor and value: CORDOVA
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_device_object_whitelisting_enabled. Using default value 'false'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_device_object_whitelisting_enabled and value: false
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_device_object_whitelisting_enabled. Using default value 'false'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_device_object_whitelisting_enabled and value: false
V/Braze v14.0.1 .bo.app.g4: Push token cache cleared.
D/Braze v14.0.1 .bo.app.g4: Cannot add null push token to attributes object.
D/Braze v14.0.1 .bo.app.z: Event dispatched: {"name":"ss","data":{},"time":1.626940530252E9,"session_id":"c765b327-09ca-4f9d-819d-4820a1fe901d"} with uid: 9aa0ab09-d85f-4840-bb40-b27d8234879c
D/Braze v14.0.1 .bo.app.q: Making request with id => "e885a336ee556758"
    to url: https://sdk.iad-05.braze.com/api/v3/content_cards/sync

    with headers:
    "X-Braze-ContentCardsRequest" => "true"
    "X-Braze-DataRequest" => "true"
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940530,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.q: Making request with id => "1798b83a17b1cf7c"
    to url: https://sdk.iad-05.braze.com/api/v3/data

    with headers:
    "X-Braze-TriggersRequest" => "true"
    "X-Braze-DataRequest" => "true"
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940530,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "app_version": "2.4.3",
      "app_version_code": "1100002.0.0.0",
      "device": {
        "os_version": "30",
        "carrier": "Android",
        "model": "sdk_gphone_x86",
        "resolution": "1080x1920",
        "locale": "en_US",
        "remote_notification_enabled": true,
        "android_is_background_restricted": false,
        "time_zone": "Australia\/Sydney"
      },
      "events": [
        {
          "name": "ss",
          "data": {},
          "time": 1.626940530252E9,
          "session_id": "c765b327-09ca-4f9d-819d-4820a1fe901d"
        }
      ],
      "sdk_flavor": "cordova",
      "respond_with": {
        "triggers": true,
        "config": {
          "config_time": 0
        }
      }
    }
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
V/Braze v14.0.1 .bo.app.t1: Automatically obtained Firebase Cloud Messaging token: dSst7_RsR6Gj4_a5re9fb6:APA91bEDKKJ9dWj1i0ZPn7mzv8qqUgidQShe47fULYPJet6Dq_qDA2RpiWxHe4uXMKwHggUvjH3AKDiJ_ZMp4-tZJSuJpD9Zh3J23iUCWpSLlBJoDu_rkFlTXWzMAnfhelhBvY-oZbk7
D/Braze v14.0.1 .bo.app.t: Request(id = 1798b83a17b1cf7c) Executed in [1940ms] [POST:https://sdk.iad-05.braze.com/api/v3/data]
D/Braze v14.0.1 .bo.app.q: Result(id = 1798b83a17b1cf7c) 
    {
      "triggers": [],
      "config": {
        "time": 1626220670,
        "attributes_blacklist": [],
        "events_blacklist": [],
        "purchases_blacklist": [],
        "messaging_session_timeout": 21600,
        "content_cards": {
          "enabled": true
        }
      }
    }
V/Braze v14.0.1 .bo.app.w2: Found 0 triggered actions in server response.
V/Braze v14.0.1 .bo.app.w2: Got server config: {
      "time": 1626220670,
      "attributes_blacklist": [],
      "events_blacklist": [],
      "purchases_blacklist": [],
      "messaging_session_timeout": 21600,
      "content_cards": {
        "enabled": true
      }
    }
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: 
D/Braze v14.0.1 .bo.app.d4: Server config updated for Content Cards from disabled to enabled
D/Braze v14.0.1 .bo.app.c2: Content cards enabled in server config. Requesting Content Cards refresh.
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@6ab114f
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
D/Braze v14.0.1 .bo.app.t: Request(id = e885a336ee556758) Executed in [1963ms] [POST:https://sdk.iad-05.braze.com/api/v3/content_cards/sync]
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.q: Result(id = e885a336ee556758) 
    {
      "cards": [],
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
D/Braze v14.0.1 .bo.app.f3: ContentCardsSyncRequest executed successfully.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: 
I/Braze v14.0.1 .bo.app.u3: Updating offline Content Cards for user with id: 
D/Braze v14.0.1 .bo.app.h0: bo.app.q0 fired: bo.app.q0@836a0dc
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.q0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.k1: Geofences enabled server config value false received.
D/Braze v14.0.1 .bo.app.k1: Geofences enabled status false unchanged during server config update.
D/Braze v14.0.1 .bo.app.h0: bo.app.a1 fired: bo.app.a1@a6db5e5
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.a1 on 1 subscribers.
D/Braze v14.0.1 .bo.app.k6: Registering 0 new triggered actions.
D/Braze v14.0.1 .bo.app.k6: No test triggered actions found.
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@24068ba
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@f31736b
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
D/Braze v14.0.1 .bo.app.d3: Trigger dispatch completed. Alerting subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.v0 fired: bo.app.v0@fc5686
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.v0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.k6: In flight trigger requests is empty. Executing any pending trigger events.
D/Braze v14.0.1 .bo.app.k6: New incoming <open>. Searching for matching triggers.
D/Braze v14.0.1 .bo.app.k6: Failed to match triggered action for incoming <open>.
D/Braze v14.0.1 .bo.app.q: Making request with id => "5e84dc07c4134d38"
    to url: https://sdk.iad-05.braze.com/api/v3/content_cards/sync

    with headers:
    "X-Braze-ContentCardsRequest" => "true"
    "X-Braze-DataRequest" => "true"
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940533,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.ContentCardsUpdatedEvent fired: ContentCardsUpdatedEvent{mUserId='', mTimestampSeconds=1626940533, mIsFromOfflineStorage=false, card count=0}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.ContentCardsUpdatedEvent
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@1375512
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@e66e4e3
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.e4: Deleting event from storage with uid 9aa0ab09-d85f-4840-bb40-b27d8234879c
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
D/Braze v14.0.1 .bo.app.t: Request(id = 5e84dc07c4134d38) Executed in [1271ms] [POST:https://sdk.iad-05.braze.com/api/v3/content_cards/sync]
D/Braze v14.0.1 .bo.app.q: Result(id = 5e84dc07c4134d38) 
    {
      "cards": [],
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
D/Braze v14.0.1 .bo.app.f3: ContentCardsSyncRequest executed successfully.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: 
I/Braze v14.0.1 .bo.app.u3: Updating offline Content Cards for user with id: 
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.ContentCardsUpdatedEvent fired: ContentCardsUpdatedEvent{mUserId='', mTimestampSeconds=1626940534, mIsFromOfflineStorage=false, card count=0}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.ContentCardsUpdatedEvent
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@8298fe6
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@56e8927
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
D/Capacitor: Handling local request: http://com.simplywallst.app/static/static/BrazeNative.js
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@62a4380
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.q: Making request with id => "2816ea9168e0b13c"
    to url: https://sdk.iad-05.braze.com/api/v3/data

    with headers:
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940551,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "app_version": "2.4.3",
      "app_version_code": "1100002.0.0.0",
      "attributes": [
        {
          "push_token": "dSst7_RsR6Gj4_a5re9fb6:APA91bEDKKJ9dWj1i0ZPn7mzv8qqUgidQShe47fULYPJet6Dq_qDA2RpiWxHe4uXMKwHggUvjH3AKDiJ_ZMp4-tZJSuJpD9Zh3J23iUCWpSLlBJoDu_rkFlTXWzMAnfhelhBvY-oZbk7"
        }
      ],
      "sdk_flavor": "cordova",
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
D/Braze v14.0.1 .bo.app.t: Request(id = 2816ea9168e0b13c) Executed in [1262ms] [POST:https://sdk.iad-05.braze.com/api/v3/data]
D/Braze v14.0.1 .bo.app.q: Result(id = 2816ea9168e0b13c) 
    {}
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: 
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@44196d6
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@b669d57
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@24db7f3
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@2158cb0
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@581e04f
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@6bec3dc
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@626326b
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@b6241c8
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@8ec1012
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@95483e3
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@6771b5e
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@3c17b3f
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@5d9afc3
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@d467b79
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
I/BrazeCordova: Received changeUser with the following arguments: ["MY_EXTERNAL_USER_ID"]
I/Braze v14.0.1 .com.appboy.Appboy: Changing anonymous user to MY_EXTERNAL_USER_ID
D/Braze v14.0.1 .bo.app.h0: bo.app.s0 fired: bo.app.s0@c9e36a5
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.s0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.n1: Not adding session id to event: {
      "name": "se",
      "data": {
        "d": 85
      },
      "time": 1.62694061578E9,
      "session_id": "c765b327-09ca-4f9d-819d-4820a1fe901d"
    }
D/Braze v14.0.1 .bo.app.n1: Not adding user id to event: {
      "name": "se",
      "data": {
        "d": 85
      },
      "time": 1.62694061578E9,
      "session_id": "c765b327-09ca-4f9d-819d-4820a1fe901d"
    }
V/Braze v14.0.1 .bo.app.n1: Attempting to log event: {
      "name": "se",
      "data": {
        "d": 85
      },
      "time": 1.62694061578E9,
      "session_id": "c765b327-09ca-4f9d-819d-4820a1fe901d"
    }
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@ca1ba7a
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
D/Braze v14.0.1 .bo.app.e4: Adding event to storage with uid 02ef0b37-1338-419a-9ba4-e0f3625fa394
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.SessionStateChangedEvent fired: SessionStateChangedEvent{mSessionId='c765b327-09ca-4f9d-819d-4820a1fe901d', mSessionStateChangeType=SESSION_ENDED}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.SessionStateChangedEvent
D/Braze v14.0.1 .com.appboy.support.StringUtils: Generating MD5 for user id: MY_EXTERNAL_USER_ID apiKey: MY_API_KEY
D/Braze v14.0.1 .bo.app.y: Data sync started
V/Braze v14.0.1 .bo.app.h4: Capabilities changed. Min bidirectional bandwidth in kbps: 141000
V/Braze v14.0.1 .bo.app.y: Capability change event mapped to network level: GREAT on capabilities: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=141000Kbps LinkDnBandwidth>=141000Kbps SignalStrength: -30 AdministratorUids: [] RequestorUid: -1 RequestorPackageName: null]
V/Braze v14.0.1 .bo.app.h4: Capabilities changed. Min bidirectional bandwidth in kbps: 141000
V/Braze v14.0.1 .bo.app.y: Capability change event mapped to network level: GREAT on capabilities: [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=141000Kbps LinkDnBandwidth>=141000Kbps SignalStrength: -30 AdministratorUids: [] RequestorUid: -1 RequestorPackageName: null]
V/Braze v14.0.1 .bo.app.k6: Subscribing to trigger dispatch events.
I/Braze v14.0.1 .bo.app.l4: Geofences implicitly disabled via server configuration.
D/Braze v14.0.1 .bo.app.l4: Did not find stored geofences.
D/Braze v14.0.1 .bo.app.k1: Braze geofences not enabled. Geofences not set up.
I/Braze v14.0.1 .bo.app.m1: Location collection disabled via sdk configuration.
V/Braze v14.0.1 .bo.app.m1: Using location providers: [NETWORK, PASSIVE]
D/Braze v14.0.1 .bo.app.s1: Started offline AppboyEvent recovery task.
V/Braze v14.0.1 .bo.app.g4: Push token cache cleared.
D/Braze v14.0.1 .bo.app.f4: No stored open session in storage.
I/Braze v14.0.1 .bo.app.p1: New session created with ID: 96e13960-b340-40ff-b17d-87446e6cbf98
D/Braze v14.0.1 .bo.app.h0: bo.app.r0 fired: bo.app.r0@ea24ba3
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.r0 on 2 subscribers.
D/Braze v14.0.1 .bo.app.g0: Session start event for new session received.
V/Braze v14.0.1 .bo.app.n1: Attempting to log event: {
      "name": "ss",
      "data": {},
      "time": 1.626940615995E9,
      "user_id": "MY_EXTERNAL_USER_ID",
      "session_id": "96e13960-b340-40ff-b17d-87446e6cbf98"
    }
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@de6561e
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@283feff
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
I/Braze v14.0.1 .bo.app.m1: Did not request single location update. Location collection is disabled.
D/Braze v14.0.1 .bo.app.g0: Requesting trigger refresh.
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@21f74cc
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
D/Braze v14.0.1 .bo.app.h0: bo.app.w0 fired: bo.app.w0@ec31315
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.w0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "triggers": true,
        "config": {
          "config_time": 1626220670
        }
      }
    }
V/Braze v14.0.1 .bo.app.g4: Push token cache cleared.
V/Braze v14.0.1 .bo.app.v3: Device object cache cleared.
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@1db62a
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "last_full_sync_at": 0,
      "last_card_updated_at": 0,
      "user_id": "MY_EXTERNAL_USER_ID"
    }
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.SessionStateChangedEvent fired: SessionStateChangedEvent{mSessionId='96e13960-b340-40ff-b17d-87446e6cbf98', mSessionStateChangeType=SESSION_STARTED}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.SessionStateChangedEvent
V/Braze v14.0.1 .bo.app.p1: Cancelling session seal alarm
D/Braze v14.0.1 .bo.app.h0: bo.app.t0 fired: bo.app.t0@2fbc265
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.t0 on 1 subscribers.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml integer configuration value with key com_appboy_data_flush_interval_great_network. Using default value '10'.
D/Braze v14.0.1 .bo.app.e4: Adding event to storage with uid 7bb8d5de-98b2-4eca-b8b0-9fac9fed11f6
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_data_flush_interval_great_network and value: 10
D/Braze v14.0.1 .bo.app.y: Data flush interval has changed from -1 ms to 10000 ms after connectivity state change to: GREAT and session state: OPEN_SESSION
D/Braze v14.0.1 .bo.app.y: Posting new sync runnable with delay 10000 ms
I/Braze v14.0.1 .bo.app.n1: Completed the openSession call. Starting or continuing session 96e13960-b340-40ff-b17d-87446e6cbf98
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@6b90af6
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "feed": true,
        "config": {
          "config_time": 1626220670
        }
      }
    }
W/Braze v14.0.1 .bo.app.w: Automatic thread interrupted! This is usually the result of calling changeUser(). [java.lang.InterruptedException]
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {}
    }
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@6038fcd
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.k1: Braze geofences not enabled. Not requesting geofences.
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@c3c5fd0
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "last_full_sync_at": 0,
      "last_card_updated_at": 0,
      "user_id": "MY_EXTERNAL_USER_ID"
    }
D/Braze v14.0.1 .bo.app.z: Event dispatched: {"name":"se","data":{"d":85},"time":1.62694061578E9,"session_id":"c765b327-09ca-4f9d-819d-4820a1fe901d"} with uid: 02ef0b37-1338-419a-9ba4-e0f3625fa394
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Unable to find the xml boolean configuration value with key com_appboy_device_object_whitelisting_enabled. Using default value 'false'.
D/Braze v14.0.1 .com.appboy.configuration.CachedConfigurationProvider: Defaulting to using xml value for key: com_appboy_device_object_whitelisting_enabled and value: false
V/Braze v14.0.1 .bo.app.g4: Push token cache cleared.
D/Braze v14.0.1 .bo.app.q: Making request with id => "41375ba50082b855"
    to url: https://sdk.iad-05.braze.com/api/v3/data

    with headers:
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940616,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "app_version": "2.4.3",
      "app_version_code": "1100002.0.0.0",
      "events": [
        {
          "name": "se",
          "data": {
            "d": 85
          },
          "time": 1.62694061578E9,
          "session_id": "c765b327-09ca-4f9d-819d-4820a1fe901d"
        }
      ],
      "sdk_flavor": "cordova",
      "respond_with": {}
    }
D/Braze v14.0.1 .bo.app.z: Event dispatched: {"name":"ss","data":{},"time":1.626940615995E9,"user_id":"MY_EXTERNAL_USER_ID","session_id":"96e13960-b340-40ff-b17d-87446e6cbf98"} with uid: 7bb8d5de-98b2-4eca-b8b0-9fac9fed11f6
D/Braze v14.0.1 .bo.app.q: Making request with id => "64b3033b38850fc6"
    to url: https://sdk.iad-05.braze.com/api/v3/data

    with headers:
    "X-Braze-TriggersRequest" => "true"
    "X-Braze-DataRequest" => "true"
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940615,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "app_version": "2.4.3",
      "app_version_code": "1100002.0.0.0",
      "device": {
        "os_version": "30",
        "carrier": "Android",
        "model": "sdk_gphone_x86",
        "resolution": "1080x1920",
        "locale": "en_US",
        "remote_notification_enabled": true,
        "android_is_background_restricted": false,
        "time_zone": "Australia\/Sydney"
      },
      "attributes": [
        {
          "user_id": "MY_EXTERNAL_USER_ID",
          "push_token": "dSst7_RsR6Gj4_a5re9fb6:APA91bEDKKJ9dWj1i0ZPn7mzv8qqUgidQShe47fULYPJet6Dq_qDA2RpiWxHe4uXMKwHggUvjH3AKDiJ_ZMp4-tZJSuJpD9Zh3J23iUCWpSLlBJoDu_rkFlTXWzMAnfhelhBvY-oZbk7"
        }
      ],
      "events": [
        {
          "name": "ss",
          "data": {},
          "time": 1.626940615995E9,
          "user_id": "MY_EXTERNAL_USER_ID",
          "session_id": "96e13960-b340-40ff-b17d-87446e6cbf98"
        }
      ],
      "sdk_flavor": "cordova",
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "triggers": true,
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.q: Making request with id => "e6b45ad5475a1f5c"
    to url: https://sdk.iad-05.braze.com/api/v3/content_cards/sync

    with headers:
    "X-Braze-ContentCardsRequest" => "true"
    "X-Braze-DataRequest" => "true"
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940616,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "last_full_sync_at": 0,
      "last_card_updated_at": 0,
      "user_id": "MY_EXTERNAL_USER_ID"
    }
D/Braze v14.0.1 .bo.app.s3: Received call to export dirty object, but the cache was already locked.
D/Braze v14.0.1 .bo.app.s3: Received call to export dirty object, but the cache was already locked.
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@eec58e8
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@6bbbff5
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.t: Request(id = 64b3033b38850fc6) Executed in [1484ms] [POST:https://sdk.iad-05.braze.com/api/v3/data]
D/Braze v14.0.1 .bo.app.q: Result(id = 64b3033b38850fc6) 
    {
      "triggers": []
    }
V/Braze v14.0.1 .bo.app.w2: Found 0 triggered actions in server response.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: MY_EXTERNAL_USER_ID
D/Braze v14.0.1 .bo.app.h0: bo.app.a1 fired: bo.app.a1@eeb918a
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.a1 on 1 subscribers.
D/Braze v14.0.1 .bo.app.k6: Registering 0 new triggered actions.
D/Braze v14.0.1 .bo.app.k6: No test triggered actions found.
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@b6133fb
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@55bcc18
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@2d56671
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@6793c56
D/Braze v14.0.1 .bo.app.d3: Trigger dispatch completed. Alerting subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.v0 fired: bo.app.v0@28514d7
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.v0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.k6: In flight trigger requests is empty. Executing any pending trigger events.
D/Braze v14.0.1 .bo.app.k6: New incoming <open>. Searching for matching triggers.
D/Braze v14.0.1 .bo.app.k6: Failed to match triggered action for incoming <open>.
D/Braze v14.0.1 .bo.app.q: Making request with id => "59b81adbf3d82faf"
    to url: https://sdk.iad-05.braze.com/api/v3/data

    with headers:
    "X-Braze-DataRequest" => "true"
    "Accept-Encoding" => "gzip, deflate"
    "X-Braze-FeedRequest" => "true"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940616,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "app_version": "2.4.3",
      "app_version_code": "1100002.0.0.0",
      "sdk_flavor": "cordova",
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "feed": true,
        "config": {
          "config_time": 1626220670
        }
      }
    }
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
D/Braze v14.0.1 .bo.app.t: Request(id = e6b45ad5475a1f5c) Executed in [1336ms] [POST:https://sdk.iad-05.braze.com/api/v3/content_cards/sync]
D/Braze v14.0.1 .bo.app.q: Result(id = e6b45ad5475a1f5c) 
    {
      "cards": [],
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
D/Braze v14.0.1 .bo.app.f3: ContentCardsSyncRequest executed successfully.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: MY_EXTERNAL_USER_ID
I/Braze v14.0.1 .bo.app.u3: Updating offline Content Cards for user with id: MY_EXTERNAL_USER_ID
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.ContentCardsUpdatedEvent fired: ContentCardsUpdatedEvent{mUserId='MY_EXTERNAL_USER_ID', mTimestampSeconds=1626940617, mIsFromOfflineStorage=false, card count=0}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.ContentCardsUpdatedEvent
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@407c7cf
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@f4b555c
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.q: Making request with id => "3d77696dc3cc4c62"
    to url: https://sdk.iad-05.braze.com/api/v3/content_cards/sync

    with headers:
    "X-Braze-ContentCardsRequest" => "true"
    "X-Braze-DataRequest" => "true"
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940616,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "last_full_sync_at": 0,
      "last_card_updated_at": 0,
      "user_id": "MY_EXTERNAL_USER_ID"
    }
D/Braze v14.0.1 .bo.app.t: Request(id = 41375ba50082b855) Executed in [1681ms] [POST:https://sdk.iad-05.braze.com/api/v3/data]
D/Braze v14.0.1 .bo.app.q: Result(id = 41375ba50082b855) 
    {}
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: 
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@1e66b48
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@57bcde1
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@8faeec8
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@e48cb61
D/Braze v14.0.1 .bo.app.y: Data sync stopped
D/Braze v14.0.1 .bo.app.e4: Deleting event from storage with uid 02ef0b37-1338-419a-9ba4-e0f3625fa394
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
D/Braze v14.0.1 .bo.app.t: Request(id = 59b81adbf3d82faf) Executed in [1168ms] [POST:https://sdk.iad-05.braze.com/api/v3/data]
D/Braze v14.0.1 .bo.app.q: Result(id = 59b81adbf3d82faf) 
    {
      "feed": []
    }
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: MY_EXTERNAL_USER_ID
I/Braze v14.0.1 .bo.app.z3: Updating offline feed for user with id: MY_EXTERNAL_USER_ID
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.FeedUpdatedEvent fired: FeedUpdatedEvent{mFeedCards=[], mUserId='MY_EXTERNAL_USER_ID', mFromOfflineStorage=false, mTimestamp=1626940618}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.FeedUpdatedEvent
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@46e50de
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@95042bf
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.e4: Deleting event from storage with uid 7bb8d5de-98b2-4eca-b8b0-9fac9fed11f6
D/Braze v14.0.1 .bo.app.t: Request(id = 3d77696dc3cc4c62) Executed in [1199ms] [POST:https://sdk.iad-05.braze.com/api/v3/content_cards/sync]
D/Braze v14.0.1 .bo.app.q: Result(id = 3d77696dc3cc4c62) 
    {
      "cards": [],
      "last_full_sync_at": 0,
      "last_card_updated_at": 0
    }
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
D/Braze v14.0.1 .bo.app.f3: ContentCardsSyncRequest executed successfully.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: MY_EXTERNAL_USER_ID
I/Braze v14.0.1 .bo.app.u3: Updating offline Content Cards for user with id: MY_EXTERNAL_USER_ID
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.ContentCardsUpdatedEvent fired: ContentCardsUpdatedEvent{mUserId='MY_EXTERNAL_USER_ID', mTimestampSeconds=1626940619, mIsFromOfflineStorage=false, card count=0}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.ContentCardsUpdatedEvent
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@7af3678
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@102f151
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@2d2d84a
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@4e8d3bb
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@2d56671
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@6793c56
V/Braze v14.0.1 .bo.app.y: Requesting immediate data flush. Current data flush interval: 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@1ee89c6
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@5af2d87
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@2d56671
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@6793c56
V/Braze v14.0.1 .com.appboy.ui.inappmessage.AppboyInAppMessageManager: Unregistering InAppMessageManager from activity: MainActivity
D/Braze v14.0.1 .bo.app.o1: Messaging session stopped. Adding new messaging session timestamp: 1626940652
V/Braze v14.0.1 .bo.app.n1: Closed session with activity: MainActivity
D/Braze v14.0.1 .bo.app.p1: Creating a session seal alarm with a delay of 10000 ms
D/Braze v14.0.1 .bo.app.h0: bo.app.u0 fired: bo.app.u0@bf3e1d6
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.u0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.y: Data flush interval has changed from 10000 ms to -1 ms after connectivity state change to: GREAT and session state: NO_SESSION
I/Braze v14.0.1 .com.appboy.Appboy: Closed session with ID: 96e13960-b340-40ff-b17d-87446e6cbf98
D/Braze v14.0.1 .bo.app.p1: Requesting data flush on internal session close flush timer.
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@62a7344
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@9c9fc2d
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@2d56671
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@6793c56
I/Braze v14.0.1 .bo.app.p1: Session [96e13960-b340-40ff-b17d-87446e6cbf98] being sealed because its end time is over the grace period.
D/Braze v14.0.1 .bo.app.h0: bo.app.s0 fired: bo.app.s0@90555ae
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.s0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.n1: Not adding session id to event: {
      "name": "se",
      "data": {
        "d": 66
      },
      "time": 1.626940682075E9,
      "session_id": "96e13960-b340-40ff-b17d-87446e6cbf98"
    }
V/Braze v14.0.1 .bo.app.n1: Attempting to log event: {
      "name": "se",
      "data": {
        "d": 66
      },
      "time": 1.626940682075E9,
      "user_id": "MY_EXTERNAL_USER_ID",
      "session_id": "96e13960-b340-40ff-b17d-87446e6cbf98"
    }
D/Braze v14.0.1 .bo.app.e4: Adding event to storage with uid 44103caa-5d1a-40c2-a0a6-e48c4a347f3f
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@b2e6dc
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: com.appboy.events.SessionStateChangedEvent fired: SessionStateChangedEvent{mSessionId='96e13960-b340-40ff-b17d-87446e6cbf98', mSessionStateChangeType=SESSION_ENDED}
I/Braze v14.0.1 .bo.app.h0: Event was published, but no subscribers were found. Saving event for later publishing to a matching subscriber. Event class: class com.appboy.events.SessionStateChangedEvent
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@b551eba
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.z: Event dispatched: {"name":"se","data":{"d":66},"time":1.626940682075E9,"user_id":"MY_EXTERNAL_USER_ID","session_id":"96e13960-b340-40ff-b17d-87446e6cbf98"} with uid: 44103caa-5d1a-40c2-a0a6-e48c4a347f3f
D/Braze v14.0.1 .bo.app.q: Making request with id => "dd09c1927a46d728"
    to url: https://sdk.iad-05.braze.com/api/v3/data

    with headers:
    "Accept-Encoding" => "gzip, deflate"
    "Content-Type" => "application/json"
    "X-Braze-Api-Key" => "MY_API_KEY

    and JSON:
    {
      "device_id": "7e2535c9-c9f4-4e88-a26b-dc3fca34cb40",
      "time": 1626940682,
      "api_key": "MY_API_KEY",
      "sdk_version": "14.0.1",
      "app_version": "2.4.3",
      "app_version_code": "1100002.0.0.0",
      "events": [
        {
          "name": "se",
          "data": {
            "d": 66
          },
          "time": 1.626940682075E9,
          "user_id": "MY_EXTERNAL_USER_ID",
          "session_id": "96e13960-b340-40ff-b17d-87446e6cbf98"
        }
      ],
      "sdk_flavor": "cordova",
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "config": {
          "config_time": 1626220670
        }
      }
    }
V/Braze v14.0.1 .bo.app.s: Enabling SSL protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
D/Braze v14.0.1 .bo.app.h0: bo.app.b1 fired: bo.app.b1@acf4a9d
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.b1 on 1 subscribers.
V/Braze v14.0.1 .bo.app.d3: Request started
V/Braze v14.0.1 .bo.app.z: Added request to dispatcher with parameters: 
    {
      "respond_with": {
        "user_id": "MY_EXTERNAL_USER_ID",
        "config": {
          "config_time": 1626220670
        }
      }
    }
D/Braze v14.0.1 .bo.app.s3: Received call to export dirty object, but the cache was already locked.
D/Braze v14.0.1 .bo.app.s3: Received call to export dirty object, but the cache was already locked.
D/Braze v14.0.1 .bo.app.h3: Short circuiting execution of network request and immediately marking it as succeeded.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@56ccb12
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.t: Request(id = dd09c1927a46d728) Executed in [1286ms] [POST:https://sdk.iad-05.braze.com/api/v3/data]
D/Braze v14.0.1 .bo.app.q: Result(id = dd09c1927a46d728) 
    {}
D/Braze v14.0.1 .bo.app.o6: Triggered actions Json array was null. Not de-serializing triggered actions.
D/Braze v14.0.1 .bo.app.o6: Templated message Json was null. Not de-serializing templated message.
V/Braze v14.0.1 .bo.app.e3: Processing server response payload for user with id: MY_EXTERNAL_USER_ID
D/Braze v14.0.1 .bo.app.h0: bo.app.p0 fired: bo.app.p0@50834e0
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.p0 on 1 subscribers.
D/Braze v14.0.1 .bo.app.h0: bo.app.k0 fired: bo.app.k0@9daf399
D/Braze v14.0.1 .bo.app.h0: Triggering bo.app.k0 on 1 subscribers.
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.v3@2d56671
V/Braze v14.0.1 .bo.app.s3: Notifying confirmAndUnlock listeners for cache: bo.app.g4@6793c56
D/Braze v14.0.1 .bo.app.e4: Deleting event from storage with uid 44103caa-5d1a-40c2-a0a6-e48c4a347f3f
radixdev commented 3 years ago

Hi @Ricardinh0 ,

It does indeed look like the Cordova SDK is successfully communicating with the native SDK and getting the token registered. I would suggest looking at/posting the raw logcat from the device when the push is sent to the device. There might be logs from FCM about why the push isn't sending. I also need the user ID, braze dashboard links, and APK file to further debug (maybe multiple Firebase services are registered in the manifest). Since this is a public issue, I would suggest filing a ticket with support@braze.com about this issue so you don't have to obfuscate your logs.

Ricardinh0 commented 3 years ago

Hi @radixdev

Just to update on this. I was able to verify that the cordova plugin was sending a valid token to Braze and that the the FCM token was able to be push to.

However when implementing @capacitor/push-notifications to receive a notification, I found it clashed with the cordova plugin and had to disable com.google.firebase:firebase-messaging:22.0.0 to allow @capacitor/push-notifications to use version 21.0.1. Then I was able to receive push notifications :+1:

I can bump Capacitor's firebase-messaging version to 22.0.0 but then ran into Cannot resolve symbol 'FirebaseInstanceId' within @capacitor/push-notifications.

At this point it didn't want to poke around too much more and reverted to commenting out the cordova plugin's dependency.

It would be good to use the master version of the cordova plugin instead of forking it. So if you have any advice on how to integrate better with Capacitor, that would be great.

Thanks

radixdev commented 3 years ago

Hi @Ricardinh0 ,

Braze doesn't (yet) offer formal Capacitor JS support. In your opinion, is push the only stumbling block from moving over from pure Cordova to Capacitor with the Braze Cordova SDK?

Back to your specific issue, the native Android Braze SDK doesn't actually require any specific version of the firebase-messaging dependency to be present. It will work on any recent version of the dependency from the last few years. The Cordova Braze SDK merely brings in a recent firebase-messaging dependency for convenience. Thus, if capacitor JS is on version 21.0.1, then that will totally work; our SDK will continue to be able to receive notifications and automatically register push tokens. You can exclude version 22.0.0 with something like https://docs.gradle.org/current/userguide/dependency_downgrade_and_exclude.html in gradle if cordova is bringing that dependency version in.