Prashant
12/19/2025, 1:29 PMkapa.ai
12/19/2025, 1:29 PMinvoice_line_items containing invoice objects instead of line items This matches a recently reported regression in the Stripe source connector (v5.11.0), where invoice_line_items started returning invoice-level data (invoice id and missing line-item fields) instead of proper line items. [[Stripe issue](https://github.com/airbytehq/airbyte/issues/59154)] The root cause was identified and fixed in a later Stripe connector release (5.12.0). [[Stripe fix](https://github.com/airbytehq/airbyte/issues/59154)] Action: - In Airbyte Cloud, check the version of your Stripe source. - If it’s 5.11.0 (or an affected version), upgrade to the latest available Stripe connector version and re-run the sync. - You will likely need to reset the affected streams (at least invoice_line_items) so they are re-synced with the corrected behavior. 2. Incremental syncs re-sending unchanged records / “junk” or duplicate data There are a few relevant points from the docs and forum: - Incremental syncs rely on a cursor and state; records with cursor values <= the stored cursor are considered already synced, and only records with cursor > that value should be pulled next time. [[Incremental syncs](https://docs.airbyte.com/platform/connector-development/config-based/understanding-the-yaml-file/incremental-syncs)] - For Stripe, incremental behavior is more complex because the Stripe API doesn’t natively support “updated since last sync” for all objects. Airbyte uses: - The Events API where possible, to approximate “updated” behavior. [[Stripe troubleshooting](https://docs.airbyte.com/integrations/sources/stripe#troubleshooting)] - For many streams (including Charges, Invoice Line Items, Invoices, etc.), an artificial updated cursor field managed by Airbyte. [[Stripe troubleshooting](https://docs.airbyte.com/integrations/sources/stripe#troubleshooting)] - There have been known incremental issues and fixes in Stripe streams (e.g., duplicates, incorrect incremental behavior) that required connector upgrades and sometimes a full reset. [[Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] Your symptoms: - Same charge re-sent on later syncs despite no Stripe changes This is consistent with incremental bugs that have been reported (e.g., records being re-sent even when using an updated cursor). [[Incremental issues forum](https://discuss.airbyte.io/t/504); [Stripe incremental issues](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] - Charge losing fields (e.g., transaction id missing on later sync) The knowledge sources confirm schema and transformation issues have occurred around Stripe updates, but they don’t give a specific root cause for missing fields in charges. [[Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] I’m sorry, but there’s no explicit documentation in the provided sources about this exact “transaction id disappears on later syncs” behavior. Actions to take: 1. Confirm connector version and upgrade - In Airbyte Cloud, open your Stripe source and check the version. - Upgrade to the latest Stripe connector version (this includes multiple incremental and schema fixes, including the invoice_line_items regression). [[Stripe fix](https://github.com/airbytehq/airbyte/issues/59154); [Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] 2. Reset and re-sync affected streams - For streams with clearly bad data (invoice_line_items, possibly charges, invoices), perform a “Reset data” on those connections/streams and then run a fresh sync so state and cursor are rebuilt from scratch. [[Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] 3. Check your sync mode and cursor configuration - Ensure the streams are set to Incremental with the default cursor (updated or the documented cursor for that stream) and that the destination mode (e.g., S3) is what you expect (Append vs Overwrite). [[Stripe troubleshooting](https://docs.airbyte.com/integrations/sources/stripe#troubleshooting); [Incremental syncs](https://docs.airbyte.com/platform/connector-development/config-based/understanding-the-yaml-file/incremental-syncs)] 4. If issues persist, open a support ticket / GitHub issue - Include: - Source connector version - Connection ID - Example record IDs (e.g., specific charge id, invoice id) - Job logs for a “good” first sync and a “bad” subsequent sync - Similar issues have been investigated and fixed via GitHub issues before. [[Stripe issue](https://github.com/airbytehq/airbyte/issues/59154)] If you share your Stripe source version and which exact streams are misbehaving (charges, invoices, invoice_line_items, others), I can help you narrow down which known fixes apply and what to reset.Prashant
12/19/2025, 1:32 PMPrashant
12/19/2025, 1:33 PMkapa.ai
12/19/2025, 1:35 PMkapa.ai
12/19/2025, 1:36 PMkapa.ai
12/19/2025, 1:36 PMinvoice_line_items to contain invoice objects, or - charges being re-sent with missing fields (e.g., transaction id) on later incremental syncs. The only clearly documented, similar regression is for 5.11.0 and was fixed in 5.12.0. [[Stripe 5.11 bug](https://github.com/airbytehq/airbyte/issues/59154)] Since you’re already on 5.15.14, your issue is not covered by the existing docs/issues I can see. Given that: 1. This looks like a new or unresolved bug in the Stripe connector beyond 5.12.0 (no explicit mention in the sources). 2. The connector relies on a complex incremental mechanism (Events API + artificial updated cursor) and has had multiple incremental and schema regressions in the past. [[Stripe troubleshooting](https://docs.airbyte.com/integrations/sources/stripe#troubleshooting); [Stripe migration guide](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] ### Recommended next steps 1. Reset and re-sync the affected streams - In your Stripe → S3 connection, reset at least: - invoice_line_items - charges - Then run a fresh sync so state and cursor are rebuilt. This is the standard remediation after Stripe connector incremental/schema fixes. [[Stripe migration guide](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] 2. Open an official support ticket / GitHub issue Since 5.15.14 is newer than the issues in the knowledge sources, you should report this so the team can investigate: - Mention you’re on Airbyte Cloud, Stripe source 5.15.14. - Describe: - invoice_line_items containing invoice objects. - charges being re-sent on incremental syncs with missing fields (e.g., transaction id). - Attach: - Example Stripe object IDs (charge id, invoice id). - Logs from: - First (correct) sync. - A subsequent (incorrect) sync. Similar prior issues (like the 5.11.0 regression) were diagnosed and fixed via GitHub issues. [[Stripe 5.11 bug](https://github.com/airbytehq/airbyte/issues/59154)] Because the knowledge sources don’t cover 5.15.14’s behavior, I can’t point to a known fix beyond these remediation steps and escalation. If you’d like, you can paste a small sample of the “bad” invoice_line_items and charges records (with IDs anonymized), and I can help you structure exactly what to include in the ticket.kapa.ai
12/19/2025, 1:36 PMupdated cursor should avoid re‑pulling unchanged data, but there are a few important limitations and known Stripe issues to be aware of. ### 1. Stripe incremental behavior is imperfect by design For many Stripe streams (including Charges, Invoices, Invoice Line Items), Airbyte uses an artificial updated cursor and the Events API to approximate “updated since last sync”, because Stripe’s API doesn’t natively support that for all objects. [[Stripe troubleshooting](https://docs.airbyte.com/integrations/sources/stripe#troubleshooting)] This means: - Airbyte guarantees at-least-once delivery, not exactly-once. It is acceptable (and expected) that some rows are re-sent on later syncs, even if they haven’t changed. [[Inclusive cursors](https://docs.airbyte.com/platform/using-airbyte/core-concepts/sync-modes/incremental-append#inclusive-cursors)] - If the cursor value for a record is equal to the last stored cursor, it can still be emitted again (inclusive cursor). [[Inclusive cursors](https://docs.airbyte.com/platform/using-airbyte/core-concepts/sync-modes/incremental-append#inclusive-cursors)] So seeing the same charge again on a later sync is not necessarily a bug by itself; it’s part of the at‑least‑once semantics. ### 2. Known Stripe connector issues can cause “wrong” or mixed data From the sources: - There was a regression where invoice_line_items started returning invoice-level data (invoice objects) instead of proper line items after a Stripe connector update. [[Stripe issue 59154](https://github.com/airbytehq/airbyte/issues/59154)] - Users reported that disabling invoice_line_items allowed other Stripe streams to sync correctly, confirming that schema/stream changes in that release were breaking incremental syncs. [[Stripe issue 59154](https://github.com/airbytehq/airbyte/issues/59154)] - The Stripe migration guide notes multiple incremental sync bugs that were fixed in later versions and required schema refresh + data reset (e.g., for Refunds, Checkout Sessions, Checkout Session Line Items, and schema changes for Invoices, Subscriptions, SubscriptionSchedule). [[Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] The knowledge sources do not explicitly document your exact symptom of a charge losing a transaction id on later syncs, so I can’t confirm a specific root cause for that. But they do show that: - Stripe connector updates have introduced schema and incremental bugs. - Fixes required upgrading the connector and resetting affected streams. [[Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500); [Stripe issue 59154](https://github.com/airbytehq/airbyte/issues/59154)] ### 3. What you can do now Based on the docs and issues: 1. Confirm and upgrade Stripe connector version - In Airbyte Cloud, open your Stripe source and check the version. - If you’re on a version around the known regressions (e.g., 5.11.x) or older than the migration fixes, upgrade to the latest Stripe connector. [[Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500); [Stripe issue 59154](https://github.com/airbytehq/airbyte/issues/59154)] 2. Reset and re-sync affected streams - For streams where you see clearly wrong data (invoice_line_items, possibly charges / invoices), perform a Reset data on those streams and run a fresh sync so the cursor state and schema are rebuilt. [[Stripe migration 5.0.0](https://docs.airbyte.com/integrations/sources/stripe-migrations#upgrading-to-500)] 3. Rely on deduplication downstream - Because incremental append uses inclusive cursors and at‑least‑once delivery, you should expect some duplicates and handle them in your destination (e.g., dedupe in your warehouse or downstream processing). [[Inclusive cursors](https://docs.airbyte.com/platform/using-airbyte/core-concepts/sync-modes/incremental-append#inclusive-cursors)] 4. If the wrong data persists after upgrade + reset - The knowledge sources don’t provide more detail on your exact case. At that point, you should open an Airbyte Cloud support ticket or GitHub issue with: - Stripe source version - Connection ID - Example Stripe object IDs (charge id, invoice id) - Job logs for a “good” first sync and a “bad” subsequent sync - Similar Stripe issues have been investigated and fixed this way. [[Stripe issue 59154](https://github.com/airbytehq/airbyte/issues/59154)] If you can share your Stripe connector version and which specific streams are still wrong after an upgrade/reset, I can map them to the closest documented issues and advise which ones to reset or temporarily disable.