Skip to content
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

PyAirbyte destinations (e.g. destination-bigquery) fail with You must upgrade your platform version to use this connector version. #329

Closed
aaronsteers opened this issue Aug 9, 2024 · 2 comments · Fixed by #330

Comments

@aaronsteers
Copy link
Contributor

Related to: airbytehq/airbyte#43417

The newest specification for destinations will fail if either generationId or minGenerationId is missing in the configured catalog.

Fix would be for PyAirbyte to inject 1 and 1 as static values.

@aaronsteers
Copy link
Contributor Author

aaronsteers commented Aug 9, 2024

@edgao - Is there any reason why the CDK doesn't do this already, rather than hard fail?

When both values are 1 we get legacy behavior and everything works as-expected, yes?

Now that there are versions in the wild that require this, I'm going to go ahead and do the fix in PyAirbyte, but this seems like an unnecessary and critical breakage for basically all OSS users.

@edgao
Copy link

edgao commented Aug 9, 2024

When both values are 1 we get legacy behavior?

I'd recommend using 0 instead (there's some edge case behaviors we're still working on fixing). Also, overwrite syncs won't actually delete old data, because of the next point

rather than hard fail

the generation ID stuff is a pretty significant interface change. In particular - destinations no longer respect destination_sync_mode=OVERWRITE, and instead rely on minimum_generation to trigger that behavior (and destinations have a ton of new logic to support that, i.e. discovering what tables/generations exists in the destination / juggling tables). Building backwards-compatibility into that would have just made it even worse :/

(as for why this wasn't a major version bump in the connector - we didn't want to show the breaking change notice in cloud, b/c it's pointless. And platform doesn't have an easy way to only display that notif in OSS, and the platform x connector compat matrix didn't exist at the time. So it fell to the connector to handle it.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants