Troubleshoot Snowflake data source issues
This document provides solutions to common issues you may encounter when configuring or using the Snowflake data source. For configuration instructions, refer to Configure the Snowflake data source.
Quick troubleshooting checklist
Start here for the most common issues.
License errors
The Snowflake data source is a Grafana Enterprise plugin. It requires a Grafana Enterprise license, or a Grafana Cloud plan that includes Enterprise plugins. A missing or invalid license, or a license that doesn’t cover the plugin, causes most installation and startup failures, rather than a problem with your Snowflake credentials. Check your license before you troubleshoot your configuration.
On self-managed Grafana, review your license in Administration > General > Stats and license. On Grafana Cloud, Enterprise plugins are included on some plans and available as a paid add-on on others. For details, refer to Grafana Cloud features.
“Plugin health check failed” or “Invalid license for the enterprise plugin”
The plugin backend fails to start when it can’t validate an Enterprise license, which surfaces as a generic health check error. This is a licensing problem, not a credential problem.
Symptoms:
- Save & test reports
Plugin health check failedwith no further detail. - The plugin catalog or server log shows an error similar to
invalid license for the enterprise plugin. - The data source fails immediately, before it sends any request to Snowflake.
Solutions:
- Confirm your Grafana instance has a valid Enterprise license, or that your Grafana Cloud plan includes Enterprise plugins.
- If you provide the license through the
GF_ENTERPRISE_LICENSE_TEXTenvironment variable or a license file, verify that you copied the full token without truncation or extra whitespace. The token is a JSON Web Token (JWT) with three parts separated by periods. - After you update the license, restart Grafana and try again.
- If your license is valid and the error persists, contact Grafana Support.
Enterprise plugin isn’t available on your plan
Free plans and some paid plans don’t include Enterprise plugins, so the plugin is blocked before you can use it.
Symptoms:
- No Install or Enable button appears on the plugin’s catalog page.
- The plugin appears installed but won’t enable.
Solutions:
- On Grafana Cloud, verify that Enterprise plugins are enabled for your account. On some plans, Enterprise plugins are a paid add-on that you must enable. For details, refer to Grafana Cloud features.
- Depending on your plan, you might be limited in how many Enterprise plugins you can run at once. If another Enterprise plugin, such as ServiceNow or Splunk, is already active, deactivate it or upgrade your plan.
- On self-managed Grafana, verify that your Grafana Enterprise license is valid and covers Enterprise plugins.
- If you can’t enable Enterprise plugins, contact Grafana Support.
License stops working after a plan or contract change
After a contract renewal or plan change, license entitlements don’t always propagate automatically, and a previously working plugin can stop loading.
Solutions:
- On self-managed Grafana, restart Grafana so it picks up the updated license.
- Confirm the new plan or contract still includes Enterprise plugins.
- If the plugin doesn’t recover, contact Grafana Support to re-provision your license entitlements.
Provisioned data source shows errors or broken icons
A Snowflake data source created through provisioning or Terraform shows broken icons or errors when the Enterprise license isn’t active. This is a licensing issue, not a provisioning or Terraform bug.
Solutions:
- Verify the Enterprise license or Grafana Cloud entitlement is active. Refer to “Plugin health check failed” or “Invalid license for the enterprise plugin”.
- After the license is active, reload the page or restart Grafana, then re-test the provisioned data source.
Authentication errors
These errors occur when credentials are invalid, missing, or don’t have the required permissions.
“Incorrect username or password”
Symptoms:
- Save & test fails with authentication errors.
- The error message mentions incorrect credentials.
Possible causes and solutions:
“Invalid private key”
Symptoms:
- Save & test fails when using Key Pair authentication.
- The error message mentions private key issues.
Solutions:
- Ensure the private key is in PKCS#8 PEM format. The plugin supports keys both with and without a passphrase. Keys without a passphrase use the following header and footer:Passphrase-protected keys use:
-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY----------BEGIN ENCRYPTED PRIVATE KEY----- ... -----END ENCRYPTED PRIVATE KEY----- - Paste the full contents of the private key file, including the header and footer lines.
- If the key is protected by a passphrase, enter the matching passphrase in the Private key passphrase field. Leave this field empty for keys without a passphrase. A missing or incorrect passphrase produces an invalid private key error.
- Verify the corresponding public key is correctly configured in Snowflake for your user.
- Regenerate the key pair if necessary. Refer to Snowflake Key Pair authentication.
Note
Keys in the legacy PKCS#1 format (
-----BEGIN RSA PRIVATE KEY-----) are not supported. Convert the key to PKCS#8 format before using it.
“Role not granted to user”
Symptoms:
- Save & test fails with role-related errors.
- Queries fail with permission errors.
Solutions:
- Verify the role is granted to the user:
SHOW GRANTS TO USER <username>; - Grant the role if missing:
GRANT ROLE <role_name> TO USER <username>; - If the role field is left empty, the user’s default role is used. Verify the default role has the necessary permissions.
OAuth authentication doesn’t work for alerts
OAuth pass-through relies on the identity of the user signed in to Grafana. Alert rules, recording rules, and other backend evaluations run without a signed-in user, so the plugin can’t obtain an OAuth token for them.
Symptoms:
- Interactive dashboard queries work, but alert rules on the same data source fail.
- Alert evaluation errors mention authentication or a missing token.
Solutions:
- Configure a separate Snowflake data source that uses password, key pair, or programmatic access token (PAT) authentication, and use it for alert and recording rules.
- Keep the OAuth data source for interactive dashboards, where a user identity is available.
For more information, refer to Configure alerting.
OAuth configuration on Grafana Cloud
Some OAuth setup steps edit the grafana.ini configuration file, which isn’t available on Grafana Cloud.
Solutions:
- On Grafana Cloud, you can’t edit
grafana.ini. Configure your identity provider and authentication settings through the Grafana Cloud UI instead. Refer to Configure authentication. - On self-managed Grafana, set the OAuth scopes in
grafana.inias described in OAuth authentication.
Authentication type change fails with a license error
An Enterprise license problem can block configuration changes and surface as an authentication or health check error, which makes it look like a credentials problem.
Solutions:
- Before you switch authentication types, for example from password to key pair, confirm the Enterprise license is active. Refer to License errors.
- After the license is active, change the authentication type and click Save & test.
Unexpected authentication attempts from Grafana
If you see unexpected Snowflake login attempts from Grafana Cloud IP addresses, another data source is likely still configured to connect to your Snowflake account.
Solutions:
- Audit all Snowflake data sources across your Grafana organizations and stacks. A data source in another organization under the same account can connect to the same Snowflake account.
- Remove or disable data sources that should no longer connect.
- Review the Snowflake
LOGIN_HISTORYview to identify the user and client that generate the attempts.
Connection errors
These errors occur when Grafana cannot reach Snowflake endpoints.
“Connection refused” or timeout errors
Symptoms:
- The data source test times out.
- Queries fail with network errors.
Solutions:
- Verify network connectivity from the Grafana server to Snowflake endpoints.
- Check firewall rules allow outbound HTTPS (port 443) to
*.snowflakecomputing.com. - Verify the Account field is correct, including region and platform if applicable.
- For Grafana Cloud, ensure your Snowflake account allows connections from Grafana Cloud IP ranges.
- If your Snowflake instance is only reachable from within a private network, set up Private data source connect (PDC) to establish a secure tunnel from Grafana Cloud.
“Invalid account identifier”
Symptoms:
- Save & test fails with account-related errors.
- The error message mentions an invalid account.
Solutions:
- Verify the account identifier format. The account name should be the entire string to the left of
snowflakecomputing.comin your Snowflake URL. - Include the region if not in
us-west-2. Example:xyz123.us-east-1 - Include the platform if not on AWS. Example:
xyz123.us-east-1.gcporxyz123.east-us-2.azure
Private data source connect (PDC) issues
Private data source connect (PDC) failures are usually caused by local network configuration, such as firewall rules, a VPN, or a proxy, rather than the Snowflake plugin.
Solutions:
- Verify the PDC agent is running and healthy.
- Verify your network allows traffic from the PDC agent to your Snowflake endpoint over HTTPS (port 443).
- Confirm the data source is assigned to the correct PDC network. Refer to Private data source connect.
- For setup and agent troubleshooting, refer to Private data source connect (PDC).
Corporate proxy or security software interferes with queries
Corporate proxies and security tools, such as Zscaler, can interfere with Snowflake connections, especially under concurrent load.
Symptoms:
- Individual queries succeed, but dashboards that run many queries at once fail.
- Intermittent connection or TLS errors that don’t correlate with a specific query.
Solutions:
- Review your proxy or security layer configuration for rules that limit concurrent connections to
*.snowflakecomputing.com. - Allow traffic to your Snowflake endpoints through the proxy or security software.
- If your Snowflake instance is on a private network, use Private data source connect (PDC) to establish a dedicated secure tunnel.
Query errors
These errors occur when executing queries against the data source.
“No data” or empty results
Symptoms:
- The query executes without error but returns no data.
- Charts show a “No data” message.
Possible causes and solutions:
Query timeout
Symptoms:
- The query runs for a long time, then fails.
- The error mentions a timeout or query limits.
Solutions:
- Narrow the time range to reduce data volume.
- Select only the columns you need instead of
SELECT *. - Add
WHEREfilters to narrow the dataset before Grafana processes it, and addLIMITclauses to reduce the result set. - Avoid
LIKEon large tables. Use exact matches where possible, or filter after the query with panel transformations. - Check whether the Snowflake warehouse is suspended and needs to resume, and use a warehouse sized appropriately for your query complexity.
- Increase the Request Timeout (sec) in the data source configuration if your queries legitimately need more time. Refer to Queries time out before the configured Request Timeout.
Queries time out before the configured Request Timeout
The effective query timeout is the smallest of several limits, so a query can fail before it reaches the plugin’s Request Timeout value.
Possible causes and solutions:
Alert queries time out with the Time series format
The Time series format converts query results into wide time series, which is an expensive operation for large result sets and can push a backend-evaluated alert query past its timeout.
Solutions:
- In the alert rule query, set the format to Table instead of Time series.
- Remove time-related columns and time grouping from the SQL, and return only the columns the alert condition needs.
- Narrow the query with
WHEREfilters and aggregation so it returns a small result set.
Dashboards time out or cancel queries on refresh
Aggressive dashboard auto-refresh intervals on dashboards with many Snowflake panels can overload the warehouse and cause queries to cancel each other.
Solutions:
- Set the dashboard auto-refresh to a reasonable interval, such as 30 seconds or more, for Snowflake-backed dashboards.
- Reduce the number of Snowflake panels per dashboard, or stagger heavy panels across multiple dashboards.
- Use a warehouse sized to handle the concurrent queries the dashboard generates.
“Object does not exist”
Symptoms:
- The error message mentions a table, schema, or database that isn’t found.
Solutions:
- Verify the object name is spelled correctly.
- Check that the database and schema are specified in your query or in the data source configuration.
- Verify the user’s role has access to the object.
- Object names in Snowflake are case-sensitive when quoted. Ensure consistent casing.
Template variable errors
These errors occur when using template variables with the data source.
Variables return no values
Solutions:
- Verify the data source connection is working (test it in the data source settings).
- Check that the variable query returns results when run directly in Snowflake.
- Verify the user’s role has permissions to query the tables referenced in the variable query.
- For cascading variables, ensure parent variables have valid selections.
Variables are slow to load
Solutions:
- Set variable refresh to On dashboard load instead of On time range change.
- Add
LIMITclauses to variable queries to reduce the number of returned values. - Use more specific
WHEREclauses to filter variable results.
Known issues and workarounds
“Session no longer exists” or “session expired” errors
When a Snowflake session expires, the plugin reconnects and retries the query. Older plugin versions only retried on error 390114 (“Authentication token has expired”) and surfaced error 390111 (“Session no longer exists. New login required to access the service.”) to the user, most often on alert rules that evaluate after long idle periods.
Symptoms:
- Queries or alert rules intermittently fail with
390111or a session-expired message. - Failures are more common after periods of inactivity.
Solutions:
- Update to the latest version of the Snowflake plugin. Current versions reconnect and retry on both
390111and390114. - If you can’t update immediately, re-run the query or re-save the alert rule to force a new session.
Annotation queries are slow
Annotation queries can run slower than panel queries, especially against high-latency views such as SNOWFLAKE.ACCOUNT_USAGE.
Solutions:
- Filter annotation queries with the
$__timeFilter(<time_column>)macro and add aLIMITclause to reduce the result set. Refer to Annotations. - Query low-latency tables instead of
SNOWFLAKE.ACCOUNT_USAGEviews where possible.ACCOUNT_USAGEviews can have significant data latency. - Keep the plugin updated to the latest version.
Enable debug logging
To capture detailed error information for troubleshooting:
Set the Grafana log level to
debugin the configuration file:[log] level = debugReview logs in
/var/log/grafana/grafana.log(or your configured log location).Look for Snowflake-specific entries that include request and response details.
Reset the log level to
infoafter troubleshooting to avoid excessive log volume.
Get additional help
If you’ve tried the solutions above and still encounter issues:
- Check the Grafana community forums for similar issues.
- Review the Snowflake plugin catalog page for recent changes and known issues.
- Consult the Snowflake documentation for service-specific guidance.
- Contact Grafana Support if you’re a Grafana Cloud Pro, Cloud Contracted, or Enterprise customer.
When reporting issues, include:
- Grafana version
- Snowflake plugin version
- Error messages (redact sensitive information)
- Steps to reproduce
- Relevant configuration (redact credentials)


