Tableau: unstable pagination, fatal RATE_EXCEEDED, and silent truncation on large Tableau Cloud instances
Author: rospeCreated Sep 9, 2026Updated Sep 9, 2026
Labelsbug
Describe the bug
Several defects in the Tableau connector surface on large Tableau Cloud instances (thousands of datasources, frequent catalog changes):
- Unstable cursor pagination — paginated Metadata API queries have no
orderBy, so when the catalog changes mid-ingestion, items shift between pages and entities are skipped or duplicated. RATE_EXCEEDEDis fatal — when Tableau Cloud throttles queries (cost budget exhausted), theRATE_EXCEEDEDGraphQL error raises a fatalRuntimeErrorand crashes the pipeline, instead of being retried like timeouts.NullValueInNonNullableFieldcrashes ingestion — when the 20k node limit truncates a response, nested objects (e.g.workbook.owner) come backnull. This error lacksseverity: WARNING, so the existing non-fatal handling doesn't catch it and ingestion crashes, even though the partial data is usable.- Field upstream page size silently truncated —
page_size * 10(e.g. 2000 forpage_size: 200) exceeds Tableau'sfieldsConnectionlimit of 1000, which silently truncates results with no error, producing incomplete field-level lineage.
To Reproduce
Run the Tableau connector against a large Tableau Cloud instance with page_size: 200, ongoing catalog changes, and datasources large enough to hit the 20k node limit. Observe skipped/duplicated entities, pipeline crashes on throttling or null fields, and incomplete field upstreams.
Expected behavior
Ingestion should paginate stably, retry on RATE_EXCEEDED, tolerate NullValueInNonNullableField partial data, and not silently truncate field upstream results.
Version
DataHub ingestion (Tableau source), current master.
Source: datahub-project/datahub