Airbyte is the open source ETL and ELT platform built around connectors, and the master branch of airbytehq/airbyte saw 300 commits in the last week. Most of the activity is connector level: config validation for uptick, rate limit and retry behavior for ad sources, a Debezium bump that makes MySQL CDC survive a server identity change, and a wave of CDK 7 and Python 3.13 upgrades. Here is what changed and what it means for your syncs.
Uptick 2.1.1 hardens config validation and cleans up legacy fields ¶
The most recent commit is a connector wide cleanup: fix(source-uptick): reject empty base_url, remove legacy config fields. Airbyte integrations/connectors/source-uptick/manifest.yaml now sets minLength: 1 and pattern: "\\S" on base_url, so an empty or whitespace only URL fails the spec check instead of producing a confusing runtime error against the wrong endpoint.
A new ConfigMigration removes legacy top level fields the connector no longer reads. The ordering matters: start_date and end_date are always removed, but the old OAuth token fields are only dropped once credentials.auth_type is set, so a rollback to 2.0.x still validates. The acceptance test config also disables backward compatibility tests for version 2.1.0, which is the expected signal for an intentional spec break. Two caveats from the connector docs worth knowing: OAuth config normalization is derived in memory on every run, so Cloud may persist a transformed config emitted in a control message, and plain HTTP hosts are unreachable because normalization always rewrites base_url to https://.
OpenAI Ads gets real 404 and rate limit handling ¶
Several commits touch the openai-ads connector in the same week, making it the most changed docs and metadata target. Skip conversion_pixels on 404, report rate limits, honor Retry-After and correct the 403 message changes two operator visible behaviors: streams no longer fail when the API returns a 404 for conversion_pixels, and the connector now respects the Retry-After header instead of backing off on its own schedule. A companion commit declares the missing documented schema fields, so payloads match the docs.
There is also an implicit window fix: report date ranges now end at the current UTC-12 date, which prevents requesting report data for a day the API has not produced yet. The result in docs/integrations/sources/openai-ads.md, the top changed file at six commits, documents the lookback window and the end date clamp. If you saw spurious failures with empty report rows, this cluster is the fix.
MySQL CDC survives a new server UUID ¶
The bulk CDK pulled in Debezium 3.4.3 via extract 1.2.0, and source-mysql picked it up in Bulk CDK 1.2.1 so CDC survives a new server UUID in the GTID set. That matters if you rebuild or promote a MySQL replica: previously the GTID set the connector tracked could reference a server UUID that no longer exists, and the sync would fail in a way that needed manual state surgery. With the new Debezium version the connector recovers without operator intervention.
One shipping hiccup is worth a note for connector developers more than operators: extract-cdc initially could not publish because the Debezium BOM leaked into the build, fixed by dropping the BOM from build.gradle. If you vendor bulk CDK artifacts by version, watch the extract changelog under airbyte-cdk/bulk/core/extract.
Retries and auth token rotation across smaller connectors ¶
A batch of fixes targets flaky API behavior. Facebook Marketing now retries transient network errors and classifies exhausted retries as transient, so a flaky connection fails with a retryable status instead of a hard failure. Salesforce added request timeouts to its OAuth token and describe calls. Outreach got the more interesting fix: save rotated OAuth tokens and refresh the access token on 401. If a provider rotates refresh tokens on use and the connector discarded the new one, every sync after the first refresh failed. Gmail also gained a wait on the body level Retry after value from rate limit errors.
Housekeeping: CDK 7, Python 3.13 and breaking type changes ¶
Low drama but worth tracking: jina ai reader and hardcoded records upgraded to airbyte-cdk 7 and Python 3.13 base images, and Intercom moved off the CDK prerelease to SDM 7.37.1. Meanwhile reddit-ads shipped a breaking change marking timestamp, date and integer field typing, so micro currency metrics land as integers rather than strings. Expect destination schema checks to flag this if you sync reddit-ads into typed warehouses.
What to watch ¶
- The breaking reddit-ads type change landed on a minor looking version bump. Verify destination column types after your next sync.
- Bulk CDK 1.2.x is the new CDC floor for MySQL. Pin your connector versions and read the extract changelog before pulling it into self managed deployments.
- CDK 7 plus Python 3.13 upgrades are rolling through connectors one at a time. If you build custom connectors on the CDK, start testing against 7 now so the base image bumps do not surprise you.