Quick reference for the most common Snowflake error codes, SQL compilation errors, and driver issues with real solutions.
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;
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
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
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...';
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
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;
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)
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' });
# 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
)
#!/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 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 |
For comprehensive debugging, see snowflake-debug-bundle.