Skip to content

AsyncRetriever cannot be used in DynamicSchemaLoader - parameter name mismatch #766

@allandelmare

Description

@allandelmare

Description

AsyncRetriever fails when used inside DynamicSchemaLoader for dynamic schema generation, throwing:
TypeError: ModelToComponentFactory.create_async_retriever() missing 1 required keyword-only argument: 'stream_slicer'

Root Cause

In airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py:

  • Line 2556: create_dynamic_schema_loader passes partition_router=... when creating the retriever
  • Line 837: _create_component_from_model passes kwargs through unchanged
  • Line 3465: create_async_retriever expects stream_slicer as a required parameter

The parameter names don't match - partition_router is passed but stream_slicer is expected.

Steps to Reproduce

Use AsyncRetriever in a DynamicSchemaLoader in a declarative YAML connector:

schema_loader:
  type: DynamicSchemaLoader
  retriever:
    type: AsyncRetriever
    # ... AsyncRetriever config

Expected Behavior

AsyncRetriever should work in DynamicSchemaLoader just like SimpleRetriever does.

Suggested Fix

Either:
- Change line 2556 to pass stream_slicer=... instead of partition_router=...
- Or change line 3465 to accept partition_router instead of stream_slicer

Environment

- airbyte-cdk version: [latest ... cloud 7.0.4 ]
- Connector type: Declarative YAML (low-code)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions