Connecting to SnowflakeDB

We're at our wits end with trying to connect our Snowflake Database with Metabase, wondering if anyone has had similar issues or can help us figure this out.

I've tried all forms and possibilities of account ID's, punctuation, capitalization, with or without region ID, etc. and none of that seems to change anything, so I don't believe this is a credential issue. One thread I was reading into noted that it would be worth attempting to ping the snowflake database connection directly from where metabase is hosted - and that connection is failing. Though, I'm also wondering if I'm setting up the ping incorrectly. I'm not very familiar with this topic - is "ping hostname.region.snowflakecomputing.com" the correct way to go about testing that out via linux terminal?

Errors: (we've changed the timeout to 10s instead of 5s, believing maybe the connection was taking too long)

[8ec69b23-263f-4019-9175-549eb8eb1430] 2022-02-18T15:04:09-08:00 ERROR metabase.driver.util Database connection error
java.util.concurrent.TimeoutException: Timed out after 10.0 s
	at metabase.util$deref_with_timeout.invokeStatic(util.clj:344)
	at metabase.util$deref_with_timeout.invoke(util.clj:336)
	at metabase.util$do_with_timeout.invokeStatic(util.clj:350)
	at metabase.util$do_with_timeout.invoke(util.clj:347)
	at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:42)
	at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:31)
	at clojure.lang.RestFn.invoke(RestFn.java:442)
	at metabase.api.database$test_database_connection.invokeStatic(database.clj:421)
	at metabase.api.database$test_database_connection.doInvoke(database.clj:411)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at metabase.api.database$fn__77164$test_connection_details__77169$fn__77170.invoke(database.clj:468)
	at metabase.api.database$fn__77164$test_connection_details__77169.invoke(database.clj:450)
	at metabase.api.database$fn__77196.invokeStatic(database.clj:488)
	at metabase.api.database$fn__77196.invoke(database.clj:474)
	at compojure.core$wrap_response$fn__32066.invoke(core.clj:160)
	at compojure.core$wrap_route_middleware$fn__32050.invoke(core.clj:132)
	at compojure.core$wrap_route_info$fn__32055.invoke(core.clj:139)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:151)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at metabase.server.middleware.auth$enforce_authentication$fn__70370.invoke(auth.clj:14)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at compojure.core$make_context$handler__32106.invoke(core.clj:289)
	at compojure.core$make_context$fn__32110.invoke(core.clj:299)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at metabase.api.routes$fn__79847$fn__79850.invoke(routes.clj:56)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.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__79992$fn__79993.doInvoke(routes.clj:57)
	at clojure.lang.RestFn.invoke(RestFn.java:436)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at compojure.core$make_context$handler__32106.invoke(core.clj:289)
	at compojure.core$make_context$fn__32110.invoke(core.clj:299)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:153)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:153)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:153)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at metabase.server.routes$fn__79980$fn__79982.invoke(routes.clj:41)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__77452.invoke(exceptions.clj:98)
	at metabase.server.middleware.exceptions$catch_api_exceptions$fn__77449.invoke(exceptions.clj:86)
	at metabase.server.middleware.log$log_api_call$fn__80447$fn__80448$fn__80449.invoke(log.clj:209)
	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__80447$fn__80448.invoke(log.clj:201)
	at toucan.db$_do_with_call_counting.invokeStatic(db.clj:216)
	at toucan.db$_do_with_call_counting.invoke(db.clj:209)
	at metabase.server.middleware.log$log_api_call$fn__80447.invoke(log.clj:200)
	at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__83660.invoke(browser_cookie.clj:30)
	at metabase.server.middleware.security$add_security_headers$fn__59285.invoke(security.clj:147)
	at metabase.server.middleware.json$wrap_json_body$fn__82804.invoke(json.clj:62)
	at metabase.server.middleware.json$wrap_streamed_json_response$fn__82822.invoke(json.clj:98)
	at metabase.server.middleware.offset_paging$handle_paging$fn__59309.invoke(offset_paging.clj:42)
	at ring.middleware.keyword_params$wrap_keyword_params$fn__83927.invoke(keyword_params.clj:55)
	at ring.middleware.params$wrap_params$fn__83943.invoke(params.clj:69)
	at metabase.server.middleware.misc$maybe_set_site_url$fn__34077.invoke(misc.clj:59)
	at metabase.server.middleware.session$bind_current_user$fn__44982$fn__44983.invoke(session.clj:257)
	at metabase.server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)
	at metabase.server.middleware.session$do_with_current_user.invoke(session.clj:230)
	at metabase.server.middleware.session$bind_current_user$fn__44982.invoke(session.clj:256)
	at metabase.server.middleware.session$wrap_current_user_info$fn__44969.invoke(session.clj:216)
	at metabase.server.middleware.session$wrap_session_id$fn__44955.invoke(session.clj:162)
	at metabase.server.middleware.auth$wrap_api_key$fn__70378.invoke(auth.clj:27)
	at ring.middleware.cookies$wrap_cookies$fn__83847.invoke(cookies.clj:216)
	at metabase.server.middleware.misc$add_content_type$fn__34060.invoke(misc.clj:27)
	at metabase.server.middleware.misc$disable_streaming_buffering$fn__34085.invoke(misc.clj:76)
	at ring.middleware.gzip$wrap_gzip$fn__83889.invoke(gzip.clj:86)
	at metabase.server.middleware.misc$bind_request$fn__34088.invoke(misc.clj:93)
	at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__83676.invoke(ssl.clj:38)
	at metabase.server$async_proxy_handler$fn__80220.invoke(server.clj:71)
	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:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	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:386)
	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:834)
[8ec69b23-263f-4019-9175-549eb8eb1430] 2022-02-18T15:04:09-08:00 TRACE metabase.util.i18n Translated "Database connection error" for site locale #locale "en" -> "Database connection error"
[8ec69b23-263f-4019-9175-549eb8eb1430] 2022-02-18T15:04:09-08:00 TRACE metabase.util.i18n Translating "Timed out after {0}" for user locale #locale "en" (site locale #locale "en") -> "Timed out after 10.0 s"
[8ec69b23-263f-4019-9175-549eb8eb1430] 2022-02-18T15:04:09-08:00 ERROR metabase.driver.snowflake (type message)
=> java.lang.String
[8ec69b23-263f-4019-9175-549eb8eb1430] 2022-02-18T15:04:09-08:00 ERROR metabase.api.database Cannot connect to Database
java.lang.Exception: Timed out after 10.0 s
	at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:48)
	at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:31)
	at clojure.lang.RestFn.invoke(RestFn.java:442)
	at metabase.api.database$test_database_connection.invokeStatic(database.clj:421)
	at metabase.api.database$test_database_connection.doInvoke(database.clj:411)
	at clojure.lang.RestFn.invoke(RestFn.java:425)
	at metabase.api.database$fn__77164$test_connection_details__77169$fn__77170.invoke(database.clj:468)
	at metabase.api.database$fn__77164$test_connection_details__77169.invoke(database.clj:450)
	at metabase.api.database$fn__77196.invokeStatic(database.clj:488)
	at metabase.api.database$fn__77196.invoke(database.clj:474)
	at compojure.core$wrap_response$fn__32066.invoke(core.clj:160)
	at compojure.core$wrap_route_middleware$fn__32050.invoke(core.clj:132)
	at compojure.core$wrap_route_info$fn__32055.invoke(core.clj:139)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:151)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at metabase.server.middleware.auth$enforce_authentication$fn__70370.invoke(auth.clj:14)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at compojure.core$make_context$handler__32106.invoke(core.clj:289)
	at compojure.core$make_context$fn__32110.invoke(core.clj:299)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$make_context$fn__32110.invoke(core.clj:300)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at metabase.api.routes$fn__79847$fn__79850.invoke(routes.clj:56)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.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__79992$fn__79993.doInvoke(routes.clj:57)
	at clojure.lang.RestFn.invoke(RestFn.java:436)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at compojure.core$make_context$handler__32106.invoke(core.clj:289)
	at compojure.core$make_context$fn__32110.invoke(core.clj:299)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:153)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:153)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at compojure.core$wrap_route_matches$fn__32059.invoke(core.clj:153)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078$f__32079$respond_SINGLEQUOTE___32080.invoke(core.clj:197)
	at metabase.server.routes$fn__79980$fn__79982.invoke(routes.clj:41)
	at compojure.core$routes$fn__32078$f__32079.invoke(core.clj:198)
	at compojure.core$routes$fn__32078.invoke(core.clj:200)
	at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__77452.invoke(exceptions.clj:98)
	at metabase.server.middleware.exceptions$catch_api_exceptions$fn__77449.invoke(exceptions.clj:86)
	at metabase.server.middleware.log$log_api_call$fn__80447$fn__80448$fn__80449.invoke(log.clj:209)
	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__80447$fn__80448.invoke(log.clj:201)
	at toucan.db$_do_with_call_counting.invokeStatic(db.clj:216)
	at toucan.db$_do_with_call_counting.invoke(db.clj:209)
	at metabase.server.middleware.log$log_api_call$fn__80447.invoke(log.clj:200)
	at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__83660.invoke(browser_cookie.clj:30)
	at metabase.server.middleware.security$add_security_headers$fn__59285.invoke(security.clj:147)
	at metabase.server.middleware.json$wrap_json_body$fn__82804.invoke(json.clj:62)
	at metabase.server.middleware.json$wrap_streamed_json_response$fn__82822.invoke(json.clj:98)
	at metabase.server.middleware.offset_paging$handle_paging$fn__59309.invoke(offset_paging.clj:42)
	at ring.middleware.keyword_params$wrap_keyword_params$fn__83927.invoke(keyword_params.clj:55)
	at ring.middleware.params$wrap_params$fn__83943.invoke(params.clj:69)
	at metabase.server.middleware.misc$maybe_set_site_url$fn__34077.invoke(misc.clj:59)
	at metabase.server.middleware.session$bind_current_user$fn__44982$fn__44983.invoke(session.clj:257)
	at metabase.server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)
	at metabase.server.middleware.session$do_with_current_user.invoke(session.clj:230)
	at metabase.server.middleware.session$bind_current_user$fn__44982.invoke(session.clj:256)
	at metabase.server.middleware.session$wrap_current_user_info$fn__44969.invoke(session.clj:216)
	at metabase.server.middleware.session$wrap_session_id$fn__44955.invoke(session.clj:162)
	at metabase.server.middleware.auth$wrap_api_key$fn__70378.invoke(auth.clj:27)
	at ring.middleware.cookies$wrap_cookies$fn__83847.invoke(cookies.clj:216)
	at metabase.server.middleware.misc$add_content_type$fn__34060.invoke(misc.clj:27)
	at metabase.server.middleware.misc$disable_streaming_buffering$fn__34085.invoke(misc.clj:76)
	at ring.middleware.gzip$wrap_gzip$fn__83889.invoke(gzip.clj:86)
	at metabase.server.middleware.misc$bind_request$fn__34088.invoke(misc.clj:93)
	at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__83676.invoke(ssl.clj:38)
	at metabase.server$async_proxy_handler$fn__80220.invoke(server.clj:71)
	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:388)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
	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:386)
	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:834)
Caused by: java.util.concurrent.TimeoutException: Timed out after 10.0 s
	at metabase.util$deref_with_timeout.invokeStatic(util.clj:344)
	at metabase.util$deref_with_timeout.invoke(util.clj:336)
	at metabase.util$do_with_timeout.invokeStatic(util.clj:350)
	at metabase.util$do_with_timeout.invoke(util.clj:347)
	at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:42)
	... 116 more

Diagnostic Info:

{
  "browser-info": {
    "language": "en-US",
    "platform": "Win32",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.6+10-post-Debian-1bpo91",
    "java.vendor": "Debian",
    "java.vendor.url": "https://tracker.debian.org/openjdk-11",
    "java.version": "11.0.6",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.6+10-post-Debian-1bpo91",
    "os.name": "Linux",
    "os.version": "4.9.0-15-amd64",
    "user.language": "en",
    "user.timezone": "America/Los_Angeles"
  },
  "metabase-info": {
    "databases": [
      "mysql",
      "mongo",
      "googleanalytics",
      "h2",
      "postgres"
    ],
    "hosting-env": "unknown",
    "application-database": "postgres",
    "application-database-details": {
      "database": {
        "name": "PostgreSQL",
        "version": "11.12"
      },
      "jdbc-driver": {
        "name": "PostgreSQL JDBC Driver",
        "version": "42.2.23"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2022-01-10",
      "tag": "v0.41.6",
      "branch": "release-x.41.x",
      "hash": "296635f"
    },
    "settings": {
      "report-timezone": "US/Pacific"
    }
  }
}

Hi @Jhingerkid
Snowflake is a little trickier than other databases to connect to.
You need to make sure that you allow your server IP if you're using firewall on Snowflake.
And the actual address (account name) depends on your region:
https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#snowflake-region-ids

Thank you for the response! Looks like I'll need to contact our admin to look in to our firewall. I'd assume this applies to cloud hosted Snowflake warehouses as well?

Regarding account name, does that mean to use the 'Snowflake Region ID', or just the 'Region ID'? If I'm reading it right, if our locator is "myLocator" and we're on US East (N. Virginia), it would be 'myLocator.us-east-1'?

@Jhingerkid If there's a firewall on your Snowflake, then it applies to anywhere that isn't allowed.

Correct, it would be abc123.us-east-1:
https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#account-identifier-formats-by-cloud-platform-and-region

Tested out the firewall, that doesn't appear to be the issue either. Any other ideas?

I think the most telling information I have is that when I ping from where our metabase is hosted, the following can send packets successfully:

ping snowflakecomputing.com

However this drops all packets:

ping myLocator.us-east-1.snowflakecomputing.com

@Jhingerkid I don't think Snowflake allows ICMP packages. But Metabase just appends the account to the domain: https://github.com/metabase/metabase/blob/master/modules/drivers/snowflake/src/metabase/driver/snowflake.clj#L70

Try using something like DBeaver.io on the same host as Metabase, so you can validate network/firewall problems.

Utilized the Snowflake CLI Connector, and was able to establish a connection from where metabase is being hosted. So I believe it has to be something wrong with Metabase (or our configuration of it) at this point

@Jhingerkid Okay, try DBeaver, since it's using similar Java based drivers as Metabase.

Apologies for not trying that first, our metabase host is headless so it doesn't have the ability to render a GUI, I'll have to see if I can find something that uses similar Java based drivers that utilizes the command line (Which I don't think DBeaver does?).

We just updated our Metabase as well, and I'm seeing a new error present in our logs if it means anything:

[b8ddcee6-eaa8-4cec-b12b-78f72098c89a] 2022-02-22T10:45:11-08:00 ERROR com.snowplowanalytics.snowplow.tracker.http.ApacheHttpClientAdapter ParameterizedMessage[messagePattern=ApacheHttpClient POST Request failed: {}, stringArgs=[Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty], throwable=null]
[b8ddcee6-eaa8-4cec-b12b-78f72098c89a] 2022-02-22T10:45:11-08:00 ERROR com.snowplowanalytics.snowplow.tracker.emitter.BatchEmitter ParameterizedMessage[messagePattern=BatchEmitter failed to send {} events: code: {}, stringArgs=[1, -1], throwable=null]
[b8ddcee6-eaa8-4cec-b12b-78f72098c89a] 2022-02-22T10:45:11-08:00 DEBUG metabase.server.middleware.log POST /api/database 400 10.1 s (1 DB calls) 
{:valid false, :dbname "Timed out after 10.0 s", :message "Timed out after 10.0 s"}

@Jhingerkid Interesting. Those two lines seems to hint at certificate problems, perhaps coming from your specific Java install or its TrustStore.

Does DBeaver work locally on your computer?

Have you tried running Metabase locally on your computer? If that works, then I'm confident it's something in Java (or its TrustStore) and could perhaps be fixed by a clean Java re-install https://www.metabase.com/docs/latest/operations-guide/java-versions.html or using Docker instead.

Updated our Java to a newer version (java 17), as well as cleaning out the old version - while the connection timed out error has gone away, it's now showing a new error:

JDBC driver internal error: Fail to retrieve row count for first arrow chunk: null.

Thank you for all of your timely replies and responses. I'm beginning my google search on this problem now.

And after resolving that, looks like I'm now getting:

JDBC driver internal error: Fail to retrieve row count for first arrow chunk: sun.misc.Unsafe or java.nio.DirectByteBuffer.<init>(long, int) not available.

@Jhingerkid Hmmm.... Metabase 0.42.1 uses Snowflake driver 3.13.6 (the upcoming 0.43 uses 3.13.14).
https://github.com/metabase/metabase/blob/master/modules/drivers/snowflake/deps.edn

I can see there's fixes for something related to chunks:
https://github.com/snowflakedb/snowflake-jdbc/blob/master/CHANGELOG.rst

But I can also see that several people are having problems with newer versions of Java, so try Java 11.

Would that mean I should actually downgrade the JDBC driver?
Last night I added in the latest snowflake-jdbc-3.13.14.jar to the plugins folder
image
Is this the correct way to add it in? I notice it doesn't have the same format of other drivers, which typically have metabase-driver.

As for Java 11 I'll give that a shot tonight and see how a fresh installation behaves.

@Jhingerkid Metabase doesn't work with drop-in generic JDBC drivers - they have to be adjusted to Metabase.

But I would recommend that you try matching Java version and driver versions on DBeaver or Metabase on your local computer. You should be able to reproduce - if you cannot reproduce, then the it must be something in your server environment and then try Docker instead on the server.

I attempted using DBeaver on my local machine and was met with a similar error:
image
This is using the latest version of Java 11:


As well as the recommended 3.13.6 Snowflake driver.

@Jhingerkid Excellent. Can you test each driver version between 3.13.6 and 3.13.14 to see when it starts working? I have a feeling that it will likely start working on 3.13.10

The strange thing is that there are many people using Snowflake, so I don't understand why it is only failing for you - haven't had any other reports about this.

Sadly I am getting the same error for every version of the driver from 3.13.6 to 3.13.14

Edit: Wait nevermind! Got it working on 3.13.10; I had a type in the hostname. Going to test with other driver versions to see if that's a factor

Looks like it's working fine for any versions - so it looks like the solution for our metabase host is to switch over to docker?

@Jhingerkid Try Metabase locally on your computer. But yes, it sounds like you have something that is contaminated on your server's Java. You can try to do a purge, but make sure to have full backup. It's likely easier to just run Metabase in a Docker container, then you don't have to worry about contamination from other places.

Great news! It worked!

I clean uninstalled Java, purged any variation of it, and used the most recent version of Temurin LTS JDK-11

1 Like