MetricSign
EN|NLRequest Access
High severitysql compilation

Power BI Refresh Error:
000904 (42000)

What does this error mean?

Snowflake cannot find the column, table, or object referenced in the query because the identifier is not valid in the current context. Error 000904 is one of the most frequent Snowflake errors in production pipelines.

Common causes

  • 1A column was renamed in the source table but the query was not updated
  • 2Unquoted identifier in mixed case — Snowflake converts unquoted identifiers to uppercase, causing mismatches with quoted (case-sensitive) column names
  • 3A typo in the column, table, schema, or database name
  • 4Schema drift: the source table structure changed and a previously valid column no longer exists
  • 5Using a column alias in a WHERE clause (SQL evaluates WHERE before SELECT)

How to fix it

  1. 1Run DESCRIBE TABLE <name> or SELECT * LIMIT 1 to see the current column names and their exact case
  2. 2Check whether the identifier is quoted with double quotes — if so, Snowflake treats it as case-sensitive
  3. 3If the column was renamed, update the query to use the new column name
  4. 4For alias usage in WHERE, move the condition to a subquery or CTE or replace the alias with the full expression
  5. 5Use information_schema.columns to programmatically check column names

Frequently asked questions

Why does Snowflake uppercase my column names?

Snowflake stores unquoted identifiers in uppercase by default. If a table was created with double-quoted column names (e.g., CREATE TABLE t ("myColumn" VARCHAR)), those names are case-sensitive and you must double-quote them in every query.

How can I check the exact column names in a Snowflake table?

Use DESCRIBE TABLE table_name or SELECT column_name FROM information_schema.columns WHERE table_name = 'TABLE_NAME'.

Other sql compilation errors