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".
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill snowflake-common-errors --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Snowflake Common Errors?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-snowflake-common-errors)More formats (shields.io, HTML) on the badges page.
---
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]
compatible-with: 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:**
```sql
-- 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:**
```sql
-- 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:**
```bash
# 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:**
```bash
# 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:**
```sql
-- 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:**
```sql
-- 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:**
```typescript
// 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'));
},
});
```
```python
# 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:**
```typescript
// 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
```python
# 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
```bash
#!/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
- [Error Messages](https://docs.snowflake.com/en/user-guide/client-connectivity-troubleshooting/error-messages)
- [Key Pair Troubleshooting](https://docs.snowflake.com/en/user-guide/key-pair-auth-troubleshooting)
- [Connection Troubleshooting](https://docs.snowflake.com/en/user-guide/admin-security-fed-auth-use)
## Next Steps
For comprehensive debugging, see `snowflake-debug-bundle`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!