-
Notifications
You must be signed in to change notification settings - Fork 4.8k
🐛 Source Iterable: Fix schema issues in campaigns, email send, and subscriptions #67602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. Helpful Resources
PR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
|
/bump-version changelog="Fix array schema definitions"
|
/format-fix
|
|
Deploy preview for airbyte-docs ready! ✅ Preview Built with commit 90c38b7. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
…bscriptions (#67602) ## What Fixes array column serialization errors in source-iterable streams by properly defining array item types in JSONSchema definitions. **Problem:** Array columns (e.g., `campaigns.labels`, `emailListIds`, `channelIds`, `categories`) were being written as null values to the S3 Data Lake destination with `DESTINATION_SERIALIZATION_ERROR` in the `_airbyte_meta` column. **Root Cause:** Multiple stream schemas had array definitions with empty `items: {}`, which is ambiguous and prevents proper type mapping to destinations like Iceberg/Glue. **Affected Streams:** - `email_unsubscribe` (emailListIds, channelIds) - `email_send` (categories) - `email_send_skip` (categories) - `email_subscribe` (emailListIds) - `campaigns` (listIds, suppressionListIds, labels) ## How Updated JSONSchema definitions across affected stream schema files to specify explicit item types for all array fields: **Before:** ``` "emailListIds": { "type": ["null", "array"], "items": {} } ``` After: ``` "emailListIds": { "type": ["null", "array"], "items": { "type": "integer" } } ``` ## Review guide source_iterable/schemas/campaigns.json - Check listIds, suppressionListIds, labels source_iterable/schemas/email_unsubscribe.json - Check emailListIds, channelIds source_iterable/schemas/email_send.json - Check categories (in transactional data) source_iterable/schemas/email_send_skip.json - Check categories (in transactional data) source_iterable/schemas/email_subscribe.json - Check emailListIds Verify that all "items": {} instances have been replaced with proper type definitions. ## User Impact None expected - this is a schema clarification that aligns with actual data types. ## Can this PR be safely reverted and rolled back? - [X] YES 💚 - [ ] NO ❌ --------- Co-authored-by: Octavia Squidington III <[email protected]>
What
Fixes array column serialization errors in source-iterable streams by properly defining array item types in JSONSchema definitions.
Problem: Array columns (e.g.,
campaigns.labels
,emailListIds
,channelIds
,categories
) were being written as null values to the S3 Data Lake destination withDESTINATION_SERIALIZATION_ERROR
in the_airbyte_meta
column.Root Cause: Multiple stream schemas had array definitions with empty
items: {}
, which is ambiguous and prevents proper type mapping to destinations like Iceberg/Glue.Affected Streams:
email_unsubscribe
(emailListIds, channelIds)email_send
(categories)email_send_skip
(categories)email_subscribe
(emailListIds)campaigns
(listIds, suppressionListIds, labels)How
Updated JSONSchema definitions across affected stream schema files to specify explicit item types for all array fields:
Before:
After:
Review guide
source_iterable/schemas/campaigns.json - Check listIds, suppressionListIds, labels
source_iterable/schemas/email_unsubscribe.json - Check emailListIds, channelIds
source_iterable/schemas/email_send.json - Check categories (in transactional data)
source_iterable/schemas/email_send_skip.json - Check categories (in transactional data)
source_iterable/schemas/email_subscribe.json - Check emailListIds
Verify that all "items": {} instances have been replaced with proper type definitions.
User Impact
None expected - this is a schema clarification that aligns with actual data types.
Can this PR be safely reverted and rolled back?