Skip to content

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

Closed

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

Activity

  1. devin-ai-integration commented on Apr 1, 2026

    @devin-ai-integration
    Contributor

    Hi Sergey Kulik (@zxqfd555), thank you for this thorough and well-documented report!

    You're correct — PR #927 removed the MessageRepresentationAirbyteTracedErrors class from airbyte_cdk.sources.streams.http.http_client. The __str__ behavior was promoted to the base AirbyteTracedException class, but no backward-compatible alias or deprecation shim was added for connectors still importing the old class name.

    This means any connector that does:

    from airbyte_cdk.sources.streams.http.http_client import MessageRepresentationAirbyteTracedErrors

    will fail with an ImportError at startup when resolved against the latest CDK.

    I've escalated this to the internal team for resolution: https://github.com/airbytehq/oncall/issues/11850

    Workaround in the meantime: If you need an immediate fix, you can pin airbyte-cdk to a version before the removal when installing the connector:

    pip install airbyte-source-github 'airbyte-cdk<7.0'

    (Adjust the version constraint based on when the breaking change was released — check PyPI for the exact version.)

    Your point about connectors not pinning CDK version ranges is also well taken and has been noted in the escalation.


    Need more help? Join Airbyte Community Slack for peer support, or if you're a Cloud customer, open a support ticket referencing this URL.

  2. pnilan commented on Apr 14, 2026

    @pnilan
    Collaborator

    Hello. Thanks for raising this. I believe this should be resolved with latest version of source-github. I will close this issue. Please reach out if you still observe this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    communityPRs and issues from community contributors

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions