Description
Describe the bug
We have noticed an issue where some of our user attributes (e.g., email, first name, etc...) are sent as null/empty to third-party integration (Braze), causing it to overwrite those attributes. This started happening ever since we migrated to Swift version of the segment library. We migrated from https://github.com/segmentio/analytics-ios (4.1.8) to https://github.com/segmentio/analytics-swift (1.5.11). The issue is still reproducable when updating analytics-swift to the latest (1.7.2) version. The integration is working fine on older versions of our app that are still using an obj-c library, it is also working fine on the Android app with identical settings/mapping as iOS on Segment.io.
To Reproduce
Steps to reproduce the behavior:
- Initialize Analytics
- After user sign in/signup, identify the user using users externalId (
Analytics.identify(userId:)
) - On Braze we get user identified, but without attributes listed above.
- After some time, our server will provide the braze those attributes, making them visible again.
- Opening the app and triggering identify makes those attributes disappear again.
Expected behavior
Third party integrations should get non null/empty attributes
Platform (please complete the following information):
- Library Version in use: 1.5.11, 1.7.2
- Platform being tested: iOS (not iOS version specific)
- Integrations in use: Braze
Are we missing something regarding the implementation on the iOS side? We are opening the issue here as it is working fine on objective-c version of the library and on other platforms.