We currently use MarketingCloudSDK 8.0.6 and SFMCSDK 1.0.4 in our production app with no issue. One of our marketing folks received the email about a bug fix in 8.0.9 that fixes a bug that affects "all messaging types". So I've tried to update to MarketingCloudSDK 8.0.9 and SFMCSDK 1.0.6 and I am getting a crash within the MarketingCloudSDK's CoreData related code it seems. This crash happens in the following cases:
- fresh app installation when enabling our Push Notification feature
- relaunching after the above crash
- after upgrading our existing app (with push already enabled)
Here is the error from iOS:
2022-12-12 15:35:45.143087-0500 <redacted>[20338:5406767] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSFetchRequest could not locate an NSEntityDescription for entity name 'SFMCEventConfigurationEntity''
*** First throw call stack:
(0x19bfd5e88 0x1953038d8 0x1a37bfaa0 0x1a37c2260 0x10af82f48 0x1a382c7e8 0x1a382c338 0x10af82e10 0x10af5b950 0x10af57828 0x10af5d51c 0x10af5d364 0x1963e7ab0 0x19c0a1f54 0x19c0ae32c 0x19c032210 0x19c047ba8 0x19c04ced4 0x1d534e368 0x19e52b3d0 0x19e52b034 0x1025ba03c 0x1ba6b8960)
libc++abi: terminating with uncaught exception of type NSException
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSFetchRequest could not locate an NSEntityDescription for entity name 'SFMCEventConfigurationEntity''
terminating with uncaught exception of type NSException
Possibly helpful logs from the SDK:
PushNotificationsConfig.isEnabledUpdated: receive subscription: (HandleEvents)
PushNotificationsConfig.isEnabledUpdated: request unlimited
2022-12-12 15:35:44.471068-0500 <redacted>[20338:5406767] exisiting blob from registration entity:(null)
2022-12-12 15:35:44.472946-0500 <redacted>[20338:5406767] exisiting blob from registration entity post processing:{
appVersion = "<redacted>";
beaconEnabled = 0;
deviceId = "<redacted>";
dst = 0;
etAccessToken = <redacted>;
etAppId = "<redacted>";
hwid = "iPhone15,2";
locale = "en_US";
locationEnabled = 0;
platform = iOS;
platformVersion = "16.1.2";
pushEnabledDeveloper = 1;
registrationId = "<redacted>";
sdkVersion = "8.0.3";
tags = (
ALL,
iPhone,
IOS
);
timeZone = "-18000";
}
2022-12-12 15:35:44.477135-0500 <redacted>[20338:5406767] NSLOG Current datastore Registration entity blob: {
appVersion = "<redacted>";
beaconEnabled = 0;
deviceId = "<redacted>";
dst = 0;
etAccessToken = <redacted>;
etAppId = "<redacted>";
hwid = "iPhone15,2";
locale = "en_US";
locationEnabled = 0;
platform = iOS;
platformVersion = "16.1.2";
pushEnabledDeveloper = 1;
registrationId = "<redacted>";
sdkVersion = "8.0.3";
tags = (
ALL,
iPhone,
IOS
);
timeZone = "-18000";
}
2022-12-12 15:35:44.479930-0500 <redacted>[20338:5406767] [umbrella] MobilePushSDK isReady = 1
MarketingCloudSDK+Base.m
2022-12-12 15:35:44.480645-0500 <redacted>[20338:5406767] [identity] Setting `<redacted>` as profileId for all subscribed modules triggered.
2022-12-12 15:35:44.480675-0500 <redacted>[20338:5406767] [eventBus] Message `IdentityEvent` received on the event bus.
2022-12-12 15:35:44.481138-0500 <redacted>[20338:5406767] [eventBus] Message `IdentityEvent` send to `push`
2022-12-12 15:35:44.481153-0500 <redacted>[20338:5406767] [sdk] New operation (0 of 100) added to the sfmcsdk.eventbus.push queue.
2022-12-12 15:35:44.481850-0500 <redacted>[20338:5406767] [identity] Setting `["<redacted>": "<redacted>"]` as attributes for all modules triggered.
2022-12-12 15:35:44.481863-0500 <redacted>[20338:5406767] [eventBus] Message `IdentityEvent` received on the event bus.
2022-12-12 15:35:44.482066-0500 <redacted>[20338:5406957] [module] log: `sfmc_setContactKey <redacted> succeeded` file: `MarketingCloudSDKFoundation+ClientData.m` line: `line: 40`
2022-12-12 15:35:44.482104-0500 <redacted>[20338:5406767] [eventBus] Message `IdentityEvent` send to `push`
2022-12-12 15:35:44.482108-0500 <redacted>[20338:5406957] [module] log: `registration key path observer for blob` file: `MarketingCloudSDKFoundation.m` line: `line: 689`
2022-12-12 15:35:44.482111-0500 <redacted>[20338:5406767] [sdk] New operation (1 of 100) added to the sfmcsdk.eventbus.push queue.
2022-12-12 15:35:44.482151-0500 <redacted>[20338:5406767] [module] log: `sfmc_setDeviceToken = {length = 32, bytes = 0xa2e3b3e4 a790e2d0 b9433e27 837b88fe ... 3637504e 3a23eb8e }` file: `MarketingCloudSDK+Base.m` line: `line: 821`
2022-12-12 15:35:44.482166-0500 <redacted>[20338:5406937] [module] log: `registration key path observer for blob` file: `MarketingCloudSDKFoundation.m` line: `line: 689`
2022-12-12 15:35:44.482184-0500 <redacted>[20338:5406937] [module] log: `sfmc_setAttributeNamed key: <redacted>, value: <redacted> succeeded, attributes now {
<redacted> = "<redacted>";
}` file: `MarketingCloudSDKFoundation+ClientData.m` line: `line: 361`
2022-12-12 15:35:44.482199-0500 <redacted>[20338:5406937] [identity] Profile attribute`<redacted>` with value `<redacted>` set.
2022-12-12 15:35:44.482215-0500 <redacted>[20338:5406767] [module] log: `registration key path observer for blob` file: `MarketingCloudSDKFoundation.m` line: `line: 689`
2022-12-12 15:35:44.482246-0500 <redacted>[20338:5406767] [module] log: `registration key path observer for blob` file: `MarketingCloudSDKFoundation.m` line: `line: 689`
2022-12-12 15:35:44.482260-0500 <redacted>[20338:5406767] [module] log: `device token has been set in the SDK with value: <redacted>` file: `MarketingCloudSDKFoundation.m` line: `line: 1292`
2022-12-12 15:35:44.482289-0500 <redacted>[20338:5406767] [module] log: `sfmc_setPushEnabled = 1 - user setting may override.` file: `MarketingCloudSDK+Base.m` line: `line: 893`
2022-12-12 15:35:44.482299-0500 <redacted>[20338:5406767] [module] log: `developer push enablement value has been set in the SDK with value: 1` file: `MarketingCloudSDKFoundation.m` line: `line: 1193`
2022-12-12 15:35:44.482375-0500 <redacted>[20338:5406767] [module] log: `sfmc_deviceToken = <redacted>` file: `MarketingCloudSDK+Base.m` line: `line: 834`
2022-12-12 15:35:44.485054-0500 <redacted>[20338:5406924] [module] log: `No valid Subscriber token available to proceed with API call.` file: `MarketingCloudSDKIntelligence+DeviceStatisticsItem.m` line: `line: 88`
2022-12-12 15:35:44.936187-0500 <redacted>[20338:5406924] [module] log: `network request complete with status 202 taskError (null)` file: `MarketingCloudSDKControlChannel.m` line: `line: 239`
2022-12-12 15:35:44.936425-0500 <redacted>[20338:5406924] [module] log: `control channel response: <NSHTTPURLResponse: 0x2835bb140> { URL: https://<redacted>.device.marketingcloudapis.com/device/v1/<redacted>/sync/<redacted> } { Status Code: 202, Headers {
"Cache-Control" = (
"no-cache, must-revalidate, max-age=0, no-store, private"
);
Connection = (
"keep-alive"
);
"Content-Length" = (
254
);
"Content-Security-Policy" = (
"upgrade-insecure-requests"
);
"Content-Type" = (
"application/json; charset=UTF-8"
);
Date = (
"Mon, 12 Dec 2022 20:35:45 GMT"
);
"Keep-Alive" = (
"timeout=5"
);
"Referrer-Policy" = (
"strict-origin-when-cross-origin"
);
"Strict-Transport-Security" = (
"max-age=15552000; includeSubDomains; preload"
);
Vary = (
"Origin, X-HTTP-Method-Override"
);
"x-content-type-options" = (
nosniff
);
"x-frame-options" = (
DENY
);
"x-mashery-message-id" = (
"<redacted>"
);
"x-mashery-responder" = (
"<redacted>"
);
"x-xss-protection" = (
"1; mode=block"
);
} }
message response data:{
nodes = (
{
items = {
blocked = 0;
};
name = blocked;
version = 1;
},
{
items = {
inbox = 0;
};
name = pushFeaturesInUse;
version = 1;
},
{
items = {
endpoints = (
);
event = {
activeEvents = (
);
};
inApp = {
gateEventProcessingMs = 1000;
};
};
name = appConfig;
version = 1;
}
);
}
` file: `MarketingCloudSDKControlChannel.m` line: `line: 265`
2022-12-12 15:35:44.936582-0500 <redacted>[20338:5406924] [module] log: `network request succeeded with status: 202` file: `MarketingCloudSDKControlChannel.m` line: `line: 277`
2022-12-12 15:35:44.936604-0500 <redacted>[20338:5406924] [module] log: `status code 202, processing only blocked node from sync route response` file: `MarketingCloudSDKControlChannel.m` line: `line: 300`
2022-12-12 15:35:44.936635-0500 <redacted>[20338:5406924] [module] log: `Control channel blocked = 0, (0), privacyMode = 0, (0)` file: `MarketingCloudSDK+Base.m` line: `line: 1053`
2022-12-12 15:35:44.963143-0500 <redacted>[20338:5406767] [module] log: `blocking MarketingCloudSDKMigration via control channel payload
{
nodes = (
{
items = {
blocked = 0;
};
name = blocked;
version = 1;
},
{
items = {
endpoints = (
);
event = {
activeEvents = (
);
};
inApp = {
gateEventProcessingMs = 1000;
};
};
name = appConfig;
version = 1;
}
);
}` file: `MarketingCloudSDKMigration.m` line: `line: 547`
Obviously, we can't upgrade the SDK with this crash happening consistently on app launch. A further question: does "all message types" include push notifications? If we only use push notifications are we affected by the mentioned bug that 8.0.9 fixes? I don't see any issue with 8.0.6 tracking push opens during testing. The email made it sounds like it maybe was only an inbox messaging feature issue which we do not use.
TIA for the help!