PR Checks / Frontend Typecheck + Tests (pull_request) Successful in 1m1s
PR Checks / Backend Smoke (pull_request) Successful in 7s
PR Checks / Build Backend (no push) (pull_request) Successful in 17s
PR Checks / Build Frontend (no push) (pull_request) Successful in 42s
PR Checks / Build Pipeline (no push) (pull_request) Successful in 9s
PR Checks / AI Code Review (Claude) (pull_request) Successful in 2m49s
The graceful-degradation fallback keys off the column named in a Postgres UndefinedColumn error, but the matcher only stripped an `s.` alias. The two new dim_location columns (county, parliamentary_constituency) are selected via the `l.` alias and Postgres reports them unquoted as "column l.county does not exist" — which the old regex failed to match at all, returning None. If dim_school is rebuilt (telephone/nursery present) but dim_location is not yet (county/parliamentary_constituency missing) — plausible since they are independently-rebuilt dbt models — the fallback branch never matched and load_school_data_as_dataframe() returned an empty DataFrame, showing zero schools sitewide instead of degrading those columns to NULL. Generalise the alias prefix to `\w+\.` and cover the l.-qualified case in tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>