Source Stripe: Invoice subscription field returns null for invoices created under newer billing models (pinned API version doesn't protect against this)
- Vorherrschende Sprache
- Python
- Sterne
- 22.1k
- Forks
- 5.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
### Connector Name
source-stripe
### Connector Version
6.0.10
### What step the error happened?
During the sync
### Relevant information
Summary
The connector pins Stripe API version 2022-11-15 and its docs state: "Stripe returns data shaped according to this version regardless of the version configured in your Stripe dashboard." In practice, that guarantee holds for schema shape but not for field population: for invoices created under Stripe's newer subscription/billing model, the legacy top-level Invoice.subscription field is returned as null even though the connector is requesting the pre-Basil (2022-11-15) API version where that field should be populated.
What changed on Stripe's side
At API version 2025-03-31.basil, Stripe removed the top-level subscription, subscription_details, quote, and subscription_proration_date fields from the Invoice object, replacing them with a new parent field (invoice.parent.subscription_details.subscription). This connector's synced schema still only has the old fields (subscription, subscription_details) — no parent field exists anywhere in the discovered schema, even after a manual schema refresh.
Observed behavior
In our synced invoices stream, subscription coverage on new invoices dropped from ~100% to ~0% within a single month (a clean, one-time cliff), coinciding with our own account's migration to a newer Stripe API version for other integrations. We confirmed:
The connector is still requesting 2022-11-15 (not configurable).
The synced schema is unchanged (still subscription/subscription_details, no parent).
No connector version through 6.0.16 adds a parent field or changes the pinned API version.
Why this matters
Users relying on the documented guarantee that a pinned API version fully insulates them from upstream breaking changes will silently lose data on any invoice created under Stripe's newer billing model, with no schema change or error to signal it — the field is present and typed correctly, just always null going forward.
Request
Update the connector to request a Stripe API version that includes invoice.parent, and add that field to the invoices stream schema (mapping parent.subscription_details.subscription to subscription for backwards compatibility, or exposing parent directly).
If a full API version bump isn't feasible short-term, consider documenting this specific gap (invoices created post-cutover won't populate legacy subscription fields even under the pin) so users aren't caught by surprise the way we were.
Happy to provide more detail (anonymized query results, timeline) if useful.
### Relevant log output
```shell
No error logs — this is a silent null-value issue, not a sync failure
```
### Contribute
- [ ] Yes, I want to contribute
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.