name: snowflake-common-errors description: 'Diagnose and fix common Snowflake errors and SQL compilation failures.
Use when encountering Snowflake error codes, failed queries,
authentication issues, or warehouse/connection problems.
Trigger with phrases like "snowflake error", "fix snowflake",
"snowflake not working", "snowflake SQL error", "snowflake 002003".
' allowed-tools: Read, Grep, Bash(curl:*) version: 1.0.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
- saas
- data-warehouse
- analytics
- snowflake compatibility: Designed for Claude Code
Snowflake Common Errors
Overview
Quick reference for the most common Snowflake error codes, SQL compilation errors, and driver issues with real solutions.
Error Reference
002003 (42S02): Object Does Not Exist
SQL compilation error: Object 'MY_DB.MY_SCHEMA.USERS' does not exist or not authorized.
Causes: Table doesn't exist, wrong database/schema context, or role lacks privileges.
Solutions:
-- Check current context
SELECT CURRENT_DATABASE(), CURRENT_SCHEMA(), CURRENT_ROLE();
-- Verify object exists
SHOW TABLES LIKE 'USERS' IN SCHEMA MY_DB.MY_SCHEMA;
-- Grant access if needed
GRANT SELECT ON TABLE MY_DB.MY_SCHEMA.USERS TO ROLE MY_ROLE;
-- Use fully-qualified names to avoid context issues
SELECT * FROM MY_DB.MY_SCHEMA.USERS;
000606: No Active Warehouse
SQL execution error: No active warehouse selected in the current session.
Solutions:
-- Set warehouse for session
USE WAREHOUSE COMPUTE_WH;
-- Or set in connection config
-- warehouse: 'COMPUTE_WH' in createConnection()
-- Check warehouse state
SHOW WAREHOUSES LIKE 'COMPUTE_WH';
-- If SUSPENDED, it auto-resumes if AUTO_RESUME = TRUE
390100: Incorrect Username or Password
Incorrect username or password was specified.
Solutions:
# Verify credentials are set
echo $SNOWFLAKE_ACCOUNT # Should be 'orgname-accountname'
echo $SNOWFLAKE_USER
# Test with SnowSQL
snowsql -a $SNOWFLAKE_ACCOUNT -u $SNOWFLAKE_USER
# Check account format — common mistake:
# Wrong: myaccount.us-east-1.snowflakecomputing.com
# Right: myorg-myaccount
390144: JWT Token Invalid (Key Pair Auth)
JWT token is invalid.
Solutions:
# Verify public key is assigned
# Run in Snowflake:
# DESC USER my_user;
# Check RSA_PUBLIC_KEY column
# Regenerate if needed
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
# Re-assign (remove headers/newlines from pub key first)
# ALTER USER my_user SET RSA_PUBLIC_KEY='MIIBIj...';
001003: SQL Compilation Error
SQL compilation error: syntax error line X at position Y unexpected 'TOKEN'.
Common causes:
-- Missing semicolons in multi-statement mode
-- Wrong: SELECT 1 SELECT 2
-- Right: SELECT 1; SELECT 2;
-- Reserved word used as identifier
-- Wrong: SELECT order FROM orders
-- Right: SELECT "order" FROM orders
-- Wrong function syntax
-- Wrong: DATEADD('day', 1, col)
-- Right: DATEADD(day, 1, col) -- no quotes on date part
100038: Statement Timeout
Statement reached its statement or warehouse timeout of X second(s).
Solutions:
-- Increase statement timeout (seconds)
ALTER SESSION SET STATEMENT_TIMEOUT_IN_SECONDS = 3600;
-- Or per-warehouse
ALTER WAREHOUSE COMPUTE_WH SET STATEMENT_TIMEOUT_IN_SECONDS = 3600;
-- Check if query needs optimization
SELECT query_id, query_text, execution_status, error_message,
total_elapsed_time / 1000 AS seconds
FROM TABLE(INFORMATION_SCHEMA.QUERY_HISTORY())
WHERE execution_status = 'FAIL'
ORDER BY start_time DESC LIMIT 10;
100035: Out of Memory / Result Too Large
Results exceed the allowed data size.
Solutions:
// Use streaming in Node.js instead of fetching all rows
connection.execute({
sqlText: 'SELECT * FROM large_table',
streamResult: true, // Don't buffer all rows in memory
complete: (err, stmt) => {
const stream = stmt.streamRows();
stream.on('data', (row) => processRow(row));
stream.on('end', () => console.log('Done'));
},
});
# Use fetchmany() in Python
cursor.execute("SELECT * FROM large_table")
while True:
rows = cursor.fetchmany(10000)
if not rows:
break
process_batch(rows)
Node.js Driver: Network / Connection Errors
Error: connect ECONNREFUSED
Error: getaddrinfo ENOTFOUND
Solutions:
// Wrong account identifier format
// Wrong: 'myaccount.us-east-1.snowflakecomputing.com'
// Right: 'myorg-myaccount'
// Check for proxy/firewall
// Snowflake requires outbound HTTPS to *.snowflakecomputing.com
// Enable connection diagnostics
snowflake.configure({ logLevel: 'DEBUG' });
Python Connector: OperationalError
# Common: snowflake.connector.errors.OperationalError
# 250001: Could not connect to Snowflake backend
# Check connectivity
import snowflake.connector
snowflake.connector.connect(
account='myorg-myaccount',
user='test',
password='test',
login_timeout=10, # Fail fast for testing
)
Quick Diagnostic Script
#!/bin/bash
echo "=== Snowflake Diagnostic ==="
echo "Account: ${SNOWFLAKE_ACCOUNT:-NOT SET}"
echo "User: ${SNOWFLAKE_USER:-NOT SET}"
echo "Password: ${SNOWFLAKE_PASSWORD:+SET (hidden)}"
echo "Warehouse: ${SNOWFLAKE_WAREHOUSE:-NOT SET}"
echo ""
echo "Connectivity test:"
curl -s -o /dev/null -w "HTTP %{http_code} in %{time_total}s" \
"https://${SNOWFLAKE_ACCOUNT}.snowflakecomputing.com/session/v1/login-request" || echo "FAILED"
echo ""
echo "Driver versions:"
npm list snowflake-sdk 2>/dev/null || echo "Node.js driver: not installed"
pip show snowflake-connector-python 2>/dev/null | grep Version || echo "Python connector: not installed"
Error Handling
| Error Code | Category | Quick Fix |
|---|---|---|
002003 | Object not found | Check context, grant access |
000606 | No warehouse | USE WAREHOUSE x; |
390100 | Auth failure | Check account format, credentials |
390144 | JWT invalid | Regenerate key pair |
001003 | SQL syntax | Check reserved words, function syntax |
100038 | Timeout | Increase timeout or optimize query |
100035 | Too large | Use streaming or pagination |
Resources
Next Steps
For comprehensive debugging, see snowflake-debug-bundle.