Skip to main content

What Foundational Detects - Issue Detection Catalog

Full catalog of what Foundational detects, grouped into meaningful categories, each with a description and severity

Foundational continuously scans your code and data pipelines - across dbt, Airflow, Snowflake, BigQuery, Redshift, Databricks, Spark, Looker, Power BI, Tableau and 30+ other platforms - and builds a unified, column-level lineage graph of how data flows between tables, columns, dashboards and jobs. On every pull request, and on an ongoing basis, we analyze that graph to catch problems before they reach production.

This document is the full catalog of what Foundational detects, grouped into meaningful categories, each with a description and severity.

How detection works

  • On a pull request (pre-merge): We compare the lineage graph as it exists today against how it would look after your change, and flag anything the change would break or degrade. This is where breaking changes are caught.

  • Continuously (post-merge / scheduled): Data observability monitors run against your warehouses to catch freshness, volume and data-quality problems as they happen.

  • At scan time: Parsing and compilation checks confirm we can fully understand each project, so lineage stays complete and trustworthy.

Severity levels

Severity

Meaning

Critical

A project could not be compiled or understood; lineage for the affected asset may be incomplete until resolved.

Error

A change or condition that will break a downstream consumer or produce incorrect results.

Warning

A likely problem or risky change that should be reviewed, but may be intentional.

Informational

A suggestion or best-practice gap; no immediate impact.

Every detection is configurable per organization - individual checks can be tuned, scoped to specific platforms, or disabled to match your team's workflow.


What is a breaking change?

A breaking change is a code change that removes or alters a table or column that other assets still depend on - leaving a downstream query, model, dashboard or job pointing at data that will no longer exist, or no longer match.

Foundational detects breaking changes by diffing the lineage graph. Because that graph is unified across platforms and resolved down to the individual column, a change is caught no matter how many transformations or platform hops separate it from the asset it affects - e.g. a column dropped in a dbt model is flagged even when the thing that depends on it is a downstream Snowflake view, a Looker explore, a Power BI dashboard, or an Airflow job.


Breaking Schema Changes

Forward-looking checks that run on every pull request and pinpoint exactly which downstream assets a change would break - across every connected platform, down to the individual column.

Detection

Severity

What it means

Removed table still in use

Error

A change deletes a table that downstream models, queries, dashboards, or jobs still read from. Foundational names every consumer that would break.

Renamed table still in use

Error

A change renames a table, but downstream assets still reference it by its old name and will break.

Removed column still in use

Error

A change deletes a column that is still consumed downstream - caught at the individual-column level, even when it is read many steps away from where it was removed.

Renamed column still in use

Error

A change renames a column, but downstream assets still read it by its old name and will break.

Column Type Change

Warning

A column's data type changes in a way that can break or silently corrupt the downstream consumers that read it (for example, a numeric column becoming a string).

Breaking change reaching BI & operational tools

Error

A change in one system breaks an asset in a different one - a Power BI, Looker, or Tableau dashboard; a reverse-ETL sync; a Spark or Airflow job. These cross-platform breaks are invisible to single-tool checks.

Reference to a non-existent table

Error

A model, query, or dashboard references a table that does not exist in any connected source - a typo, an object that was dropped, or a source that was never created.

Reference to a non-existent column

Error

An asset reads a column that does not exist on its source table, so the query will fail or silently return no data.


SQL Correctness & Semantics

Foundational statically analyzes SQL across every dialect in your stack - Snowflake, BigQuery, Redshift, Databricks, Athena, Postgres, and more - and surfaces correctness and semantic problems before the SQL ever runs.

Detection

Severity

What it means

SQL Syntax Error

Error

SQL that is grammatically malformed and will fail to parse or compile.

SQL Type / Cast Error

Error

SQL that parses correctly but contains an invalid type conversion - casting a value to a type it cannot become, or an invalid timestamp or temporal expression - which fails at runtime or silently corrupts results.

Unresolved Reference

Warning

A query references a table, column, or schema that cannot be resolved in its context, indicating a likely broken or out-of-date reference.

SQL Column Ambiguity

Error

A column reference is ambiguous across joined tables, so the engine may resolve it to the wrong source and return unexpected values.

Union Size Mismatch

Warning

The branches of a UNION return different numbers of columns, which fails or misaligns the combined result.

Union Names Mismatch

Warning

The branches of a UNION carry mismatched column names, risking mislabeled output downstream.

Unhandled Enum (non-exhaustive CASE)

Warning

A CASE expression does not cover all known values of its input, leaving unhandled values to fall through unexpectedly.

dbt Enum Mismatch

Warning

A column's data contains values outside the set declared as accepted for it.

Duplicate Definition

Warning

The same table or entity is defined in more than one place, creating ambiguity about the source of truth.


Metadata & Governance

Detection

Severity

What it means

Missing Description

Warning

A table or column has no description, reducing discoverability and governance coverage.

Missing Enum Test

Informational

A column expected to be validated against an enumerated set has no such test or validation.


Data Observability & Quality

Continuous monitors that watch your data after it lands, catching freshness and anomaly problems automatically.

Detection

Severity

What it means

Freshness

Warning

A table has not been updated within its expected time window.

Row Count Freshness

Warning

A table's row count has not changed when new data was expected.

Volume Anomaly

Warning

An unusual spike, drop, or zero in the volume of data written.

Row Count Threshold Violation

Warning

A table's row count fell outside its expected range.

Count Threshold Violation

Warning

A monitored value count fell outside its configured threshold.

Value Count Anomaly

Warning

The distribution of values in a column deviated from what is expected.

Value Rate Anomaly

Warning

The rate of unexpected or invalid values in a column is too high.

Monitor Failure

Warning

A monitoring query failed to execute.

Monitored Entity Missing

Error

A table that is under active monitoring no longer exists.


This catalog reflects the detections available on the Foundational platform. The exact set enabled for your organization, and their thresholds, can be tailored to your needs - reach out to your Foundational contact to review or adjust your configuration.

Did this answer your question?