Skip to content

Change in airbyte-cdk removes MessageRepresentationAirbyteTracedErrors, breaking multiple connectors #946

@zxqfd555

Description

Summary

A recent airbyte-cdk update introduced a breaking change that removes the MessageRepresentationAirbyteTracedErrors class from airbyte_cdk.sources.streams.http.http_client. This silently breaks a number of published connectors — including the latest released versions — and leaves Python users with no straightforward path to restore functionality, even by pinning older connector versions.

Affected Change

PR #927 in airbyte-python-cdk removes MessageRepresentationAirbyteTracedErrors, which is imported by several connectors (e.g. airbyte-source-github).

Steps to Reproduce

pip install airbyte-source-github
source-github

Observed error:

Traceback (most recent call last):
  File ".../bin/source-github", line 3, in <module>
    from source_github.run import run
  File ".../source_github/__init__.py", line 25, in <module>
    from .source import SourceGithub
  File ".../source_github/source.py", line 12, in <module>
    from airbyte_cdk.sources.streams.http.http_client import MessageRepresentationAirbyteTracedErrors
ImportError: cannot import name 'MessageRepresentationAirbyteTracedErrors' from 'airbyte_cdk.sources.streams.http.http_client'

This reproduces with the latest published version of airbyte-source-github, meaning there is no up-to-date release that users can upgrade to.

Why Pinning an Older Connector Version Doesn't Help

Connector packages do not pin airbyte-cdk to a specific version. As a result, installing any older connector release will still resolve the latest SDK at install time, which also lacks MessageRepresentationAirbyteTracedErrors. Users are effectively stuck with no working version available via pip.

Proposed Solutions

Short-term (immediate):
Restore MessageRepresentationAirbyteTracedErrors in airbyte_cdk.sources.streams.http.http_client, ideally with a deprecation warning pointing to the new location if it was moved rather than deleted. This unblocks all currently broken connectors without requiring connector-side changes.

Long-term (systemic fix):
Pin airbyte-cdk to a specific version range (or at minimum an upper-bound constraint) in each connector's dependencies. Currently, any breaking SDK change cascades instantly across the entire connector ecosystem, and Python users have no viable rollback option. Strict pinning would contain the blast radius of future SDK changes and give connector maintainers time to migrate in a controlled way.

Impact

  • Affects all connectors that import MessageRepresentationAirbyteTracedErrors
  • Latest connector releases are broken with no workaround for end users
  • Breaks standard Python usage (pip install) with no pin-based escape hatch

Thank you for your attention to this — the Airbyte connector ecosystem is widely used and even small SDK hygiene improvements here would have a meaningful positive impact for the community.


Internal Tracking: https://github.com/airbytehq/oncall/issues/11850

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions