Connecting to snowflake

I am using the open source verion of metabase and have been trying to connect to my snowflake instance for a while. See config below.

Currently I am using my account's locator but am being met with "Timeout after 10 seconds". I have tried using my account id, organisation id and account id and various combinations but have no idea why I am getting this.
Please see metabase trouble shooting below:

{
  "browser-info": {
    "language": "en-GB",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "Java(TM) SE Runtime Environment",
    "java.runtime.version": "18.0.2.1+1-1",
    "java.vendor": "Oracle Corporation",
    "java.vendor.url": "https://java.oracle.com/",
    "java.version": "18.0.2.1",
    "java.vm.name": "Java HotSpot(TM) 64-Bit Server VM",
    "java.vm.version": "18.0.2.1+1-1",
    "os.name": "Windows 10",
    "os.version": "10.0",
    "user.language": "en",
    "user.timezone": "Europe/London"
  },
  "metabase-info": {
    "databases": [
      "h2"
    ],
    "hosting-env": "unknown",
    "application-database": "h2",
    "application-database-details": {
      "database": {
        "name": "H2",
        "version": "1.4.197 (2018-03-18)"
      },
      "jdbc-driver": {
        "name": "H2 JDBC Driver",
        "version": "1.4.197 (2018-03-18)"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2022-08-16",
      "tag": "v0.44.1",
      "branch": "release-x.44.x",
      "hash": "112f5aa"
    },
    "settings": {
      "report-timezone": null
    }
  }
}

Hi @nm219
Check the logs via Admin > Troubleshooting > Logs for more details.
You need to use Java 11:
https://www.metabase.com/docs/latest/installation-and-operation/java-versions.html
https://github.com/metabase/metabase/issues/22564

And you need to migrate away from H2 if you are using Metabase in production:
https://www.metabase.com/docs/latest/installation-and-operation/migrating-from-h2.html

And remember to the region is without .aws:
https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#non-vps-account-locator-formats-by-cloud-platform-and-region

Hi Flamber, thanks for the response.
I am using Java 18, is Java 11 still required?
If I remove ".aws" I get a different error saying "JWT Token is invalid"

Please see logs below:

[064b3ba5-a4fc-4827-9748-d04ffdc12c75] 2022-08-25T15:08:55+01:00 ERROR metabase.api.database Cannot connect to Database
clojure.lang.ExceptionInfo: Timed out after 10.0 s {:message "Timed out after 10.0 s"}
	at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:153)
	at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:126)
	at clojure.lang.RestFn.invoke(RestFn.java:442)
	at metabase.api.database$test_database_connection.invokeStatic(database.clj:540)
	at metabase.api.database$test_database_connection.doInvoke(database.clj:530)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at metabase.api.database$fn__76465$test_connection_details__76470$fn__76471.invoke(database.clj:593)
	at metabase.api.database$fn__76465$test_connection_details__76470.invoke(database.clj:574)
	at metabase.api.database$fn__76498.invokeStatic(database.clj:611)
	at metabase.api.database$fn__76498.invoke(database.clj:597)
	at compojure.core$wrap_response$fn__28102.invoke(core.clj:160)
	at compojure.core$wrap_route_middleware$fn__28086.invoke(core.clj:132)
	at compojure.core$wrap_route_info$fn__28091.invoke(core.clj:139)
	at compojure.core$wrap_route_matches$fn__28095.invoke(core.clj:151)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__28095.invoke(core.clj:152)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114.invoke(core.clj:200)
	at metabase.server.middleware.auth$enforce_authentication$fn__68926.invoke(auth.clj:14)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114.invoke(core.clj:200)
	at compojure.core$make_context$handler__28142.invoke(core.clj:289)
	at compojure.core$make_context$fn__28146.invoke(core.clj:299)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$make_context$fn__28146.invoke(core.clj:300)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$make_context$fn__28146.invoke(core.clj:300)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$make_context$fn__28146.invoke(core.clj:300)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$make_context$fn__28146.invoke(core.clj:300)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$make_context$fn__28146.invoke(core.clj:300)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$make_context$fn__28146.invoke(core.clj:300)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$make_context$fn__28146.invoke(core.clj:300)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at metabase.api.routes$fn__79912$fn__79915.invoke(routes.clj:60)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114.invoke(core.clj:200)
	at clojure.lang.AFn.applyToHelper(AFn.java:160)
	at clojure.lang.AFn.applyTo(AFn.java:144)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at clojure.core$apply.invoke(core.clj:662)
	at metabase.server.routes$fn__80067$fn__80068.doInvoke(routes.clj:67)
	at clojure.lang.RestFn.invoke(RestFn.java:436)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114.invoke(core.clj:200)
	at compojure.core$make_context$handler__28142.invoke(core.clj:289)
	at compojure.core$make_context$fn__28146.invoke(core.clj:299)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__28095.invoke(core.clj:153)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__28095.invoke(core.clj:153)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__28095.invoke(core.clj:153)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114$f__28115$respond_SINGLEQUOTE___28116.invoke(core.clj:197)
	at metabase.server.routes$fn__80053$fn__80055.invoke(routes.clj:45)
	at compojure.core$routes$fn__28114$f__28115.invoke(core.clj:198)
	at compojure.core$routes$fn__28114.invoke(core.clj:200)
	at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__76804.invoke(exceptions.clj:98)
	at metabase.server.middleware.exceptions$catch_api_exceptions$fn__76801.invoke(exceptions.clj:86)
	at metabase.server.middleware.log$log_api_call$fn__80518$fn__80519$fn__80520.invoke(log.clj:211)
	at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invokeStatic(diagnostic.clj:15)
	at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invoke(diagnostic.clj:9)
	at metabase.server.middleware.log$log_api_call$fn__80518$fn__80519.invoke(log.clj:203)
	at toucan.db$_do_with_call_counting.invokeStatic(db.clj:236)
	at toucan.db$_do_with_call_counting.invoke(db.clj:229)
	at metabase.server.middleware.log$log_api_call$fn__80518.invoke(log.clj:202)
	at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__83597.invoke(browser_cookie.clj:38)
	at metabase.server.middleware.security$add_security_headers$fn__62333.invoke(security.clj:149)
	at metabase.server.middleware.json$wrap_json_body$fn__82554.invoke(json.clj:63)
	at metabase.server.middleware.json$wrap_streamed_json_response$fn__82572.invoke(json.clj:99)
	at metabase.server.middleware.offset_paging$handle_paging$fn__62357.invoke(offset_paging.clj:42)
	at ring.middleware.keyword_params$wrap_keyword_params$fn__83864.invoke(keyword_params.clj:55)
	at ring.middleware.params$wrap_params$fn__83883.invoke(params.clj:77)
	at metabase.server.middleware.misc$maybe_set_site_url$fn__35776.invoke(misc.clj:59)
	at metabase.server.middleware.session$reset_session_timeout$fn__47465.invoke(session.clj:377)
	at metabase.server.middleware.session$bind_current_user$fn__47448$fn__47449.invoke(session.clj:313)
	at metabase.server.middleware.session$do_with_current_user.invokeStatic(session.clj:292)
	at metabase.server.middleware.session$do_with_current_user.invoke(session.clj:281)
	at metabase.server.middleware.session$bind_current_user$fn__47448.invoke(session.clj:312)
	at metabase.server.middleware.session$wrap_current_user_info$fn__47430.invoke(session.clj:262)
	at metabase.server.middleware.session$wrap_session_id$fn__47414.invoke(session.clj:195)
	at metabase.server.middleware.auth$wrap_api_key$fn__68934.invoke(auth.clj:27)
	at ring.middleware.cookies$wrap_cookies$fn__83784.invoke(cookies.clj:216)
	at metabase.server.middleware.misc$add_content_type$fn__35759.invoke(misc.clj:27)
	at metabase.server.middleware.misc$disable_streaming_buffering$fn__35784.invoke(misc.clj:76)
	at ring.middleware.gzip$wrap_gzip$fn__83826.invoke(gzip.clj:86)
	at metabase.server.middleware.misc$bind_request$fn__35787.invoke(misc.clj:93)
	at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__83613.invoke(ssl.clj:38)
	at metabase.server$async_proxy_handler$fn__80290.invoke(server.clj:73)
	at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
	at org.eclipse.jetty.server.Server.handle(Server.java:516)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.util.concurrent.TimeoutException: Timed out after 10.0 s
	at metabase.util$deref_with_timeout.invokeStatic(util.clj:332)
	at metabase.util$deref_with_timeout.invoke(util.clj:324)
	at metabase.util$do_with_timeout.invokeStatic(util.clj:339)
	at metabase.util$do_with_timeout.invoke(util.clj:335)
	at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:137)
	... 123 more
[064b3ba5-a4fc-4827-9748-d04ffdc12c75] 2022-08-25T15:08:55+01:00 DEBUG metabase.server.middleware.log POST /api/database 400 10.0 s (1 DB calls) 
{:message "Timed out after 10.0 s"}

[064b3ba5-a4fc-4827-9748-d04ffdc12c75] 2022-08-25T15:08:55+01:00 DEBUG metabase.server.middleware.log GET /api/database 200 2.7 ms (3 DB calls) App DB connections: 3/15 Jetty threads: 11/50 (2 idle, 0 queued) (117 total active threads) Queries in flight: 0 (0 queued)

@nm219 Please read issue 22564 I linked. If you are not getting timeouts when you remove the .aws, then it's because you are actually hitting Snowflake.

Have you read Snowflake connection error: JWT token is invalid ?

I have changed to Java 11 and still get the same issues. I gave this link a read but I am not providing anything in "Additional JDBC connection string options", I just provide the local file path as shown above

@nm219 You should not use password, if you are using private key from what I can tell.
And the key has to be unencrypted if you input it via the form instead of connection string.
https://github.com/metabase/metabase/issues/19191
https://github.com/metabase/metabase/pull/24157

1 Like

I think this solved the issue. I was providing a private key and a password, thanks for the help