Skip to content

[source-mixpanel] Regression: StopIteration on schema discovery #69098

@transistormuncher

Description

@transistormuncher

Connector Name

source-mixpanel

Connector Version

3.6.1 and 3.6.0

What step the error happened?

Configuring a new connector

Relevant information

I set up Airbyte from scratch (k8s) and chose Mixpanel as my first connector. Versions 3.6.0 and 3.6.1 fail on schema discovery with a "StopIteration error". This happens with valid admin credentials (Service Account and Project Secret tested) on a project with known data. The connector is incorrectly reporting an empty data stream. The error is likely due to a change introduced after 3.5.4, because that version works fine on discovery.

Relevant log output

2025-10-29 17:42:48 info 
2025-10-29 17:42:48 info ----- START DISCOVER -----
2025-10-29 17:42:48 info 
2025-10-29 17:42:51 info Connector exited, processing output
2025-10-29 17:42:51 info Output file jobOutput.json found
2025-10-29 17:42:51 info Connector exited with exit code 1
2025-10-29 17:42:51 info Reading messages from protocol version 0.2.0
2025-10-29 17:42:51 error generator raised StopIteration
Traceback (most recent call last):
  File "/airbyte/integration_code/source_mixpanel/components.py", line 302, in extract_records
    properties = next(super().extract_records(response))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/airbyte/integration_code/main.py", line 9, in <module>
    run()
  File "/airbyte/integration_code/source_mixpanel/run.py", line 55, in run
    launch(source, _args)
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/entrypoint.py", line 341, in launch
    for message in source_entrypoint.run(parsed_args):
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/entrypoint.py", line 163, in run
    yield from map(
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/entrypoint.py", line 230, in discover
    catalog = self.source.discover(self.logger, config)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/concurrent_declarative_source.py", line 172, in discover
    concurrent_streams, synchronous_streams = self._group_streams(config=config)
                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/concurrent_declarative_source.py", line 303, in _group_streams
    declarative_stream.get_json_schema(),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/declarative_stream.py", line 170, in get_json_schema
    return self._schema_loader.get_json_schema()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py", line 135, in get_json_schema
    retrieved_record = next(self.retriever.read_records({}), None)  # type: ignore[call-overload] # read_records return Iterable data type
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 540, in read_records
    for stream_data in self._read_pages(record_generator, self.state, _slice):
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 374, in _read_pages
    for record in records_generator_fn(response):
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 626, in _parse_records
    yield from self._parse_response(
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 281, in _parse_response
    yield from self.record_selector.select_records(
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/extractors/record_selector.py", line 88, in select_records
    yield from self.filter_and_transform(
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/extractors/record_selector.py", line 119, in filter_and_transform
    for data in normalized_data:
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/extractors/record_selector.py", line 132, in _normalize_by_schema
    yield from records
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/extractors/record_selector.py", line 157, in _transform
    for record in records:
  File "/usr/local/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/extractors/record_selector.py", line 149, in _filter
    yield from records
RuntimeError: generator raised StopIteration
2025-10-29 17:42:51 info Checking for optional control message...
2025-10-29 17:42:51 info Writing output of 12928b32-bf0a-4f1e-964f-07e12e37153a_4eca29bc-0181-434a-9993-1c8c0a6c6be6_0_discover to the doc store
2025-10-29 17:42:51 info Marking workload 12928b32-bf0a-4f1e-964f-07e12e37153a_4eca29bc-0181-434a-9993-1c8c0a6c6be6_0_discover as successful
2025-10-29 17:42:51 info 
2025-10-29 17:42:51 info Deliberately exiting process with code 0.
2025-10-29 17:42:51 info ----- END DISCOVER -----
2025-10-29 17:42:51 info

Contribute

  • Yes, I want to contribute

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions