Solutions
Detect when upstream connectors return 0 rows and dbt runs successfully on empty data.
A silent upstream failure occurs when an upstream data connector — Fivetran, Airbyte, a custom ETL script, or any data source — successfully completes its sync but delivers 0 rows to the staging table. dbt then runs its transformation pipeline on empty input and produces empty downstream models. The Airflow DAG shows green. The dbt run shows success. But every downstream table, dashboard, and metric is empty or wrong.
Unlike a model compilation error or a schema drift, a silent upstream failure produces no error logs. The pipeline ran correctly — on bad input. Data engineers typically discover the issue hours later when a business stakeholder reports that dashboard metrics are all zero, or when a data quality check fires on an empty table. By then, tracing the issue back to an upstream 0-row sync requires manually checking connector logs, comparing row counts, and correlating timestamps — a 1–3 hour investigation.
Ordo collects upstream row counts for source tables and compares them against the 7-day rolling average baseline. When row counts drop to zero or fall more than 95% below baseline, Ordo flags the upstream connector as the root cause before the dbt run completes — or immediately after if the empty run already succeeded.
Silent upstream failure detected (97% confidence)
Source table: raw.salesforce_opportunities
Row count at 02:14 UTC: 0 rows (7-day avg: 1,240,000 rows)
dbt run: succeeded on empty input
Root cause: Upstream Fivetran connector returned empty payload
Fix: Check Fivetran connector logs for sync errors at 02:10 UTC
Affected models: fct_pipeline, rpt_revenue, dim_accounts (+11 downstream)
dbt source freshness and not_null tests only fire if you've written them — and they only check data after the run. Ordo checks upstream row counts before and during the run, regardless of whether you have tests configured. It acts as a pre-run validator that catches empty-input conditions before they propagate downstream.