Repository navigation
Declarative connector gets stuck with no logs after 58k records #83711
Replies: 3 comments
|
Hi MiguelRiosLo, thanks for the detailed write-up! We're looking into this. Nothing is confirmed yet, but a few observations and things that would help narrow it down. The detail that stands out most is that the stall is reproducible at roughly the same point every time (~57.9k records / ~946 MB). A hang that always lands on the same data volume tends to point at a resource ceiling or downstream backpressure rather than a single unlucky HTTP request, which would be expected to vary run to run. Suggested things to check
To help us dig in, could you share:
Please make sure to mask or remove any sensitive information (API keys, passwords, tokens, connection strings, hostnames) before sharing logs or manifest excerpts. Need more help? Join Airbyte Community Slack for peer support, or if you're a Cloud customer, open a support ticket referencing this URL. |
|
We've escalated this to our team for investigation: airbytehq/oncall#13238 The details requested above (OSS version, CDK / |
|
Hi! We managed to isolate this to something much more specific. We ran a sync selecting only one stream (no other streams active), so this is a clean, minimal reproduction with zero prior sync activity to confound it. Versions (from this run's logs):
What the logs show:
Why we think this is significant: this reproduction has zero records synced before the stall - it's not a matter of accumulating volume or resource exhaustion over a long-running sync (which was our previous working theory). The connector appears to hang specifically in the transition between "partition/slice generation for the substream is complete" and "the first child HTTP request is issued." With ~10,000 partitions generated via SubstreamPartitionRouter (this stream retriever uses NoPagination against GET /object/{id}/history, one request per object_id, partitioned from the parent stream), that transition appears to never happen, or takes far longer than the 600s heartbeat timeout allows. This also lines up with what we saw in the full multi-stream sync: the *_objects streams (which use real pagination) completed and flushed batches normally; the stall consistently began once the sync reached the *_object_history streams - i.e. at the same slice-generation-to-first-request transition, just reached later because other streams were processed first. We don't have infrastructure-level access (only the manifest YAML and SSH to the host, no kubectl/docker beyond that), so we can't inspect the source connector's internal state (thread pool, executor queue) during that silent window. Given how cleanly this now reproduces with a single isolated stream, would it be possible to get guidance on:
|
Uh oh!
There was an error while loading. Please reload this page.
I have a custom low-code connector (YAML/manifest) for the Jira/Atlassian Assets API, which syncs with an MSSQL target, implemented in Airbyte. Synchronization stops advancing steadily after approximately 57,900 records in total, always loading 946 MB and always while processing one of several streams that follow the same form: a
SubstreamPartitionRouterthat expands to one HTTP GET request per primary record (/object/{id}/history), withNoPaginationin the secondary retriever andconcurrency_level.max_concurrency: 1.There is no error, warning or registry output once the connector reaches this point. Sync simply stops moving forward and remains locked without syncing any additional logs. I manually stopped work after waiting 20–25 minutes with no activity, but it looks like it could stay in this state indefinitely (even for days) if left running.
I am using Airbyte's free OSS resources. Could this have any impact on this behavior? For example, could limited resources or resource throttling cause the connector to appear locked while waiting for an HTTP response?
The only message displayed after manually stopping work is:
"Terminal workload; leaving."
This message comes from the workload orchestrator/launcher, not the connector or destination. As far as I can tell, the connector seems to get stuck waiting for one of its HTTP requests to complete, and nothing in the manifest scheme seems to allow setting an HTTP request timeout that would raise the issue as a visible error.
Has anyone experienced a similar issue with declarative connectors or
SubstreamPartitionRouterflows?Does anyone have any idea what could be causing the connector to jam without causing logs or errors?
Are there any known limitations or timeout/resource issues when running Airbyte OSS with the free/default resources that could explain this behavior?
Any suggestions or ideas would be greatly appreciated. Thanks!
All reactions