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

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions