Clickhouse connection issue: "Failed to create connection"

When I’m trying to connect from metabase to ClickHouse (both self-hosted) I’m getting this error: “Failed to create connection“. Tried lower version of MB and CH, any combination didn’t work. Host resolution works fine when trying to connect from container to container with /ping.

Docker compose:

services:
  # PostgreSQL Database (for Metabase)
  postgres:
    image: postgres:17-alpine
    container_name: analytics_postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: ${POSTGRES_METABASE_DB:-metabase}
      POSTGRES_USER: ${POSTGRES_METABASE_USER:-metabase_user}
      POSTGRES_PASSWORD: ${POSTGRES_METABASE_PASSWORD:-metabase_password}
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - ./init-scripts/postgres:/docker-entrypoint-initdb.d
    ports:
      - "${POSTGRES_PORT:-5432}:5432"
    networks:
      - analytics_network
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_METABASE_USER:-metabase_user} -d ${POSTGRES_METABASE_DB:-metabase}"]
      interval: 10s
      timeout: 5s
      retries: 5

  # ClickHouse Analytics Database
  clickhouse:
    image: clickhouse:latest
    container_name: analytics_clickhouse
    restart: unless-stopped
    environment:
      CLICKHOUSE_DB: ${CLICKHOUSE_DB:-analytics}
      CLICKHOUSE_USER: ${CLICKHOUSE_USER:-analytics}
      CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-clickhouse_password}
      CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: ${CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT:-1}
    volumes:
      - clickhouse_data:/var/lib/clickhouse
      - clickhouse_logs:/var/log/clickhouse-server
      - ./config/clickhouse/config.xml:/etc/clickhouse-server/config.xml:ro
      - ./config/clickhouse/users.xml:/etc/clickhouse-server/users.xml:ro
      - ./init-scripts/clickhouse:/docker-entrypoint-initdb.d:ro
    ports:
      - "${CLICKHOUSE_HTTP_PORT:-8123}:8123"
      - "${CLICKHOUSE_TCP_PORT:-9000}:9000"
      - "${CLICKHOUSE_MYSQL_PORT:-9004}:9004"
      - "${CLICKHOUSE_POSTGRES_PORT:-9005}:9005"
    networks:
      - analytics_network
      - peerdb_network
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8123/ping"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s
    ulimits:
      nofile:
        soft: 262144
        hard: 262144

  # Metabase Analytics Platform
  metabase:
    image: metabase/metabase:latest
    platform: linux/arm64
    container_name: analytics_metabase
    restart: unless-stopped
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: ${POSTGRES_METABASE_DB:-metabase}
      MB_DB_PORT: 5432
      MB_DB_USER: ${POSTGRES_METABASE_USER:-metabase_user}
      MB_DB_PASS: ${POSTGRES_METABASE_PASSWORD:-metabase_password}
      MB_DB_HOST: postgres
      MB_ENCRYPTION_SECRET_KEY: ${MB_ENCRYPTION_SECRET_KEY:-your-secret-key-here}
      JAVA_OPTS: "-Xmx2g"
    volumes:
      - metabase_data:/metabase-data
    ports:
      - "${METABASE_PORT:-4000}:3000"
    depends_on:
      postgres:
        condition: service_healthy
    networks:
      - analytics_network
      - peerdb_network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s

Connection info:

Password is set from .env and it’s correct, tested with cli.

Logs:

2025-09-01 20:49:00,020 INFO driver.impl :: Initializing driver :clickhouse... 
2025-09-01 20:49:00,022 INFO classloader.impl :: Added URL file:/plugins/clickhouse.metabase-driver.jar to classpath 
2025-09-01 20:49:00,023 DEBUG plugins.init-steps :: Loading plugin namespace metabase.driver.clickhouse... 
2025-09-01 20:49:00,105 INFO driver.impl :: Registered driver :clickhouse (parents: [:sql-jdbc]) 🚚 
2025-09-01 20:49:00,129 DEBUG plugins.jdbc-proxy :: Registering JDBC proxy driver for com.clickhouse.jdbc.ClickHouseDriver... 
2025-09-01 20:49:00,131 INFO metabase.util :: Load lazy loading driver :clickhouse took 107.4 ms 
2025-09-01 20:49:00,181 ERROR driver.util :: Failed to connect to Database 
java.sql.SQLException: Failed to create connection
        at com.clickhouse.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:104)
        at com.clickhouse.jdbc.Driver.connect(Driver.java:123)
        at com.clickhouse.jdbc.ClickHouseDriver.connect(ClickHouseDriver.java:97)
        at metabase.plugins.jdbc_proxy$proxy_driver$reify__98324.connect(jdbc_proxy.clj:37)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271)
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250)
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invokeStatic(connection.clj:368)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invoke(connection.clj:365)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_$fn__95344.invoke(connection.clj:377)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection$fn__95326.invoke(connection.clj:353)
        at metabase.driver.sql_jdbc.connection.ssh_tunnel$do_with_ssh_tunnel.invokeStatic(ssh_tunnel.clj:152)
        at metabase.driver.sql_jdbc.connection.ssh_tunnel$do_with_ssh_tunnel.invoke(ssh_tunnel.clj:141)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invokeStatic(connection.clj:348)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invoke(connection.clj:344)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:376)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:372)
        at metabase.driver.clickhouse$fn__136788.invokeStatic(clickhouse.clj:172)
        at metabase.driver.clickhouse$fn__136788.invoke(clickhouse.clj:152)
        at clojure.lang.MultiFn.invoke(MultiFn.java:234)
        at metabase.driver.util$can_connect_with_details_QMARK_$fn__55842.invoke(util.clj:135)
        at clojure.core$binding_conveyor_fn$fn__5844.invoke(core.clj:2047)
        at clojure.lang.AFn.call(AFn.java:18)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Host cannot be null or empty string
        at com.clickhouse.data.ClickHouseChecker.newException(ClickHouseChecker.java:19)
        at com.clickhouse.data.ClickHouseChecker.nonEmpty(ClickHouseChecker.java:250)
        at com.clickhouse.client.ClickHouseNode.<init>(ClickHouseNode.java:892)
        at com.clickhouse.client.ClickHouseNode.of(ClickHouseNode.java:797)
        at com.clickhouse.client.api.Client.lambda$new$0(Client.java:162)
        at java.base/java.lang.Iterable.forEach(Unknown Source)
        at com.clickhouse.client.api.Client.<init>(Client.java:161)
        at com.clickhouse.client.api.Client.<init>(Client.java:116)
        at com.clickhouse.client.api.Client$Builder.build(Client.java:1052)
        at com.clickhouse.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:92)
        ... 35 more
2025-09-01 20:49:00,192 ERROR driver.util :: Failed to connect to Database 
java.sql.SQLException: Failed to create connection
        at com.clickhouse.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:104)
        at com.clickhouse.jdbc.Driver.connect(Driver.java:123)
        at com.clickhouse.jdbc.ClickHouseDriver.connect(ClickHouseDriver.java:97)
        at metabase.plugins.jdbc_proxy$proxy_driver$reify__98324.connect(jdbc_proxy.clj:37)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271)
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250)
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invokeStatic(connection.clj:368)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invoke(connection.clj:365)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_$fn__95344.invoke(connection.clj:377)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection$fn__95326.invoke(connection.clj:353)
        at metabase.driver.sql_jdbc.connection.ssh_tunnel$do_with_ssh_tunnel.invokeStatic(ssh_tunnel.clj:152)
        at metabase.driver.sql_jdbc.connection.ssh_tunnel$do_with_ssh_tunnel.invoke(ssh_tunnel.clj:141)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invokeStatic(connection.clj:348)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invoke(connection.clj:344)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:376)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:372)
        at metabase.driver.clickhouse$fn__136788.invokeStatic(clickhouse.clj:172)
        at metabase.driver.clickhouse$fn__136788.invoke(clickhouse.clj:152)
        at clojure.lang.MultiFn.invoke(MultiFn.java:234)
        at metabase.driver.util$can_connect_with_details_QMARK_$fn__55842.invoke(util.clj:135)
        at clojure.core$binding_conveyor_fn$fn__5844.invoke(core.clj:2047)
        at clojure.lang.AFn.call(AFn.java:18)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Host cannot be null or empty string
        at com.clickhouse.data.ClickHouseChecker.newException(ClickHouseChecker.java:19)
        at com.clickhouse.data.ClickHouseChecker.nonEmpty(ClickHouseChecker.java:250)
        at com.clickhouse.client.ClickHouseNode.<init>(ClickHouseNode.java:892)
        at com.clickhouse.client.ClickHouseNode.of(ClickHouseNode.java:797)
        at com.clickhouse.client.api.Client.lambda$new$0(Client.java:162)
        at java.base/java.lang.Iterable.forEach(Unknown Source)
        at com.clickhouse.client.api.Client.<init>(Client.java:161)
        at com.clickhouse.client.api.Client.<init>(Client.java:116)
        at com.clickhouse.client.api.Client$Builder.build(Client.java:1052)
        at com.clickhouse.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:92)
        ... 35 more
2025-09-01 20:49:00,196 ERROR warehouses.api :: Cannot connect to Database 
clojure.lang.ExceptionInfo: Failed to create connection {:message "Failed to create connection"}
        at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:152)
        at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:123)
        at clojure.lang.RestFn.invoke(RestFn.java:445)
        at metabase.warehouses.api$test_database_connection.invokeStatic(api.clj:760)
        at metabase.warehouses.api$test_database_connection.doInvoke(api.clj:750)
        at clojure.lang.RestFn.invoke(RestFn.java:428)
        at metabase.warehouses.api$test_connection_details.invokeStatic(api.clj:814)
        at metabase.warehouses.api$test_connection_details.invoke(api.clj:794)
        at metabase.warehouses.api$fn__120454$fn__120460.invoke(api.clj:838)
        at metabase.api.macros$_core_fn$core_fn__88186.invoke(macros.clj:416)
        at metabase.api.macros$endpoint_handler_STAR_$handler__88228.invoke(macros.clj:612)
        at metabase.api.macros$build_ns_handler$ns_handler_STAR___88254.invoke(macros.clj:676)
        at metabase.api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)
        at metabase.api.routes.common$enforce_authentication$fn__113600.invoke(common.clj:91)
        at metabase.api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)
        at metabase.api.util.handlers$_route_map_handler$fn__99004.invoke(handlers.clj:23)
        at metabase.api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941$f__98942$respond_SINGLEQUOTE___98943.invoke(core.clj:197)
        at metabase.api_routes.routes$fn__123964.invokeStatic(routes.clj:97)
        at metabase.api_routes.routes$fn__123964.invoke(routes.clj:96)
        at metabase.api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941.invoke(core.clj:200)
        at metabase.api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)
        at clojure.lang.Var.invoke(Var.java:395)
        at metabase.server.routes$api_handler$api_handler_STAR___99593.invoke(routes.clj:71)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941.invoke(core.clj:200)
        at compojure.core$make_context$handler__98969.invoke(core.clj:290)
        at compojure.core$make_context$fn__98973.invoke(core.clj:300)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941$f__98942$respond_SINGLEQUOTE___98943.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__98922.invoke(core.clj:153)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941$f__98942$respond_SINGLEQUOTE___98943.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__98922.invoke(core.clj:153)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941$f__98942$respond_SINGLEQUOTE___98943.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__98922.invoke(core.clj:153)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941$f__98942$respond_SINGLEQUOTE___98943.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__98922.invoke(core.clj:153)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941$f__98942$respond_SINGLEQUOTE___98943.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__98922.invoke(core.clj:153)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941$f__98942$respond_SINGLEQUOTE___98943.invoke(core.clj:197)
        at metabase.api.util.handlers$_route_map_handler$fn__99004.invoke(handlers.clj:24)
        at metabase.api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)
        at metabase.api.util.handlers$_route_map_handler$fn__99004.invoke(handlers.clj:23)
        at metabase.api.open_api.HandlerWithOpenAPISpec.invoke(open_api.clj:42)
        at compojure.core$routes$fn__98941$f__98942.invoke(core.clj:198)
        at compojure.core$routes$fn__98941.invoke(core.clj:200)
        at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__117864.invoke(exceptions.clj:77)
        at metabase.server.middleware.exceptions$catch_api_exceptions$fn__117861.invoke(exceptions.clj:66)
        at metabase.server.middleware.log$log_api_call$fn__110502$fn__110503$fn__110504.invoke(log.clj:224)
        at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invokeStatic(diagnostic.clj:17)
        at metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info.invoke(diagnostic.clj:12)
        at metabase.server.middleware.log$log_api_call$fn__110502$fn__110503.invoke(log.clj:215)
        at toucan2.execute$do_with_call_counts.invokeStatic(execute.clj:112)
        at toucan2.execute$do_with_call_counts.invoke(execute.clj:103)
        at metabase.server.middleware.log$log_api_call$fn__110502.invoke(log.clj:214)
        at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__124807.invoke(browser_cookie.clj:40)
        at metabase.server.middleware.security$add_security_headers$fn__117834.invoke(security.clj:292)
        at metabase.server.middleware.json$wrap_json_body$fn__117007.invoke(json.clj:128)
        at metabase.server.middleware.offset_paging$handle_paging$fn__119698.invoke(offset_paging.clj:48)
        at metabase.server.middleware.json$wrap_streamed_json_response$fn__116995.invoke(json.clj:83)
        at ring.middleware.keyword_params$wrap_keyword_params$fn__125074.invoke(keyword_params.clj:55)
        at ring.middleware.params$wrap_params$fn__125093.invoke(params.clj:77)
        at metabase.server.middleware.misc$maybe_set_site_url$fn__109581.invoke(misc.clj:59)
        at metabase.server.middleware.session$reset_session_timeout$fn__124795.invoke(session.clj:270)
        at metabase.server.middleware.session$bind_current_user$fn__124788$fn__124789.invoke(session.clj:245)
        at metabase.request.session$do_with_current_user$fn__76421.invoke(session.clj:52)
        at metabase.request.session$do_with_current_user$do_with_user_local_values__76416.invoke(session.clj:48)
        at metabase.request.session$do_with_current_user.invokeStatic(session.clj:49)
        at metabase.request.session$do_with_current_user.invoke(session.clj:31)
        at metabase.server.middleware.session$bind_current_user$fn__124788.invoke(session.clj:244)
        at metabase.server.middleware.session$wrap_current_user_info$fn__124784.invoke(session.clj:220)
        at metabase.analytics.sdk$embedding_mw$embedding_mw_fn__55354.invoke(sdk.clj:68)
        at metabase.server.middleware.session$wrap_session_key$fn__124752.invoke(session.clj:82)
        at metabase.server.middleware.auth$wrap_static_api_key$fn__111156.invoke(auth.clj:17)
        at ring.middleware.cookies$wrap_cookies$fn__124994.invoke(cookies.clj:200)
        at metabase.server.middleware.misc$add_content_type$fn__109563.invoke(misc.clj:28)
        at metabase.server.middleware.misc$disable_streaming_buffering$fn__109589.invoke(misc.clj:75)
        at ring.middleware.gzip$wrap_gzip$fn__125036.invoke(gzip.clj:86)
        at metabase.server.middleware.request_id$wrap_request_id$fn__100206.invoke(request_id.clj:10)
        at metabase.server.middleware.misc$bind_request$fn__109592$fn__109593.invoke(misc.clj:87)
        at metabase.request.current$do_with_current_request.invokeStatic(current.clj:19)
        at metabase.request.current$do_with_current_request.invoke(current.clj:15)
        at metabase.server.middleware.misc$bind_request$fn__109592.invoke(misc.clj:86)
        at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__124823.invoke(ssl.clj:42)
        at metabase.server.instance$async_proxy_handler$fn__110237.invoke(instance.clj:81)
        at metabase.server.instance.proxy$org.eclipse.jetty.ee9.servlet.ServletHandler$ff19274a.doHandle(Unknown Source)
        at org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:127)
        at metabase.server.statistics_handler$new_handler$fn__98186.invoke(statistics_handler.clj:105)
        at metabase.server.statistics_handler.proxy$org.eclipse.jetty.ee9.nested.HandlerWrapper$ff19274a.handle(Unknown Source)
        at org.eclipse.jetty.ee9.nested.HandlerWrapper.handle(HandlerWrapper.java:124)
        at org.eclipse.jetty.ee9.nested.ScopedHandler.nextHandle(ScopedHandler.java:197)
        at org.eclipse.jetty.ee9.nested.ContextHandler.doHandle(ContextHandler.java:1045)
        at org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:164)
        at org.eclipse.jetty.ee9.servlet.ServletHandler.doScope(ServletHandler.java:483)
        at metabase.server.instance.proxy$org.eclipse.jetty.ee9.servlet.ServletHandler$ff19274a.doScope(Unknown Source)
        at org.eclipse.jetty.ee9.nested.ScopedHandler.nextScope(ScopedHandler.java:162)
        at org.eclipse.jetty.ee9.nested.ContextHandler.doScope(ContextHandler.java:966)
        at org.eclipse.jetty.ee9.nested.ScopedHandler.handle(ScopedHandler.java:125)
        at org.eclipse.jetty.ee9.nested.ContextHandler.handle(ContextHandler.java:1719)
        at org.eclipse.jetty.ee9.nested.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1565)
        at org.eclipse.jetty.ee9.nested.HttpChannel.dispatch(HttpChannel.java:724)
        at org.eclipse.jetty.ee9.nested.HttpChannel.handle(HttpChannel.java:512)
        at org.eclipse.jetty.ee9.nested.ContextHandler$CoreContextHandler$CoreToNestedHandler.handle(ContextHandler.java:3029)
        at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1071)
        at org.eclipse.jetty.server.Server.handle(Server.java:182)
        at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:678)
        at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
        at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
        at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:981)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Failed to create connection
        at com.clickhouse.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:104)
        at com.clickhouse.jdbc.Driver.connect(Driver.java:123)
        at com.clickhouse.jdbc.ClickHouseDriver.connect(ClickHouseDriver.java:97)
        at metabase.plugins.jdbc_proxy$proxy_driver$reify__98324.connect(jdbc_proxy.clj:37)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
        at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271)
        at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250)
        at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411)
        at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111)
        at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
        at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invokeStatic(connection.clj:368)
        at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invoke(connection.clj:365)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_$fn__95344.invoke(connection.clj:377)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection$fn__95326.invoke(connection.clj:353)
        at metabase.driver.sql_jdbc.connection.ssh_tunnel$do_with_ssh_tunnel.invokeStatic(ssh_tunnel.clj:152)
        at metabase.driver.sql_jdbc.connection.ssh_tunnel$do_with_ssh_tunnel.invoke(ssh_tunnel.clj:141)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invokeStatic(connection.clj:348)
        at metabase.driver.sql_jdbc.connection$do_with_connection_spec_for_testing_connection.invoke(connection.clj:344)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:376)
        at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:372)
        at metabase.driver.clickhouse$fn__136788.invokeStatic(clickhouse.clj:172)
        at metabase.driver.clickhouse$fn__136788.invoke(clickhouse.clj:152)
        at clojure.lang.MultiFn.invoke(MultiFn.java:234)
        at metabase.driver.util$can_connect_with_details_QMARK_$fn__55842.invoke(util.clj:135)
        at clojure.core$binding_conveyor_fn$fn__5844.invoke(core.clj:2047)
        at clojure.lang.AFn.call(AFn.java:18)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        ... 1 more
Caused by: java.lang.IllegalArgumentException: Host cannot be null or empty string
        at com.clickhouse.data.ClickHouseChecker.newException(ClickHouseChecker.java:19)
        at com.clickhouse.data.ClickHouseChecker.nonEmpty(ClickHouseChecker.java:250)
        at com.clickhouse.client.ClickHouseNode.<init>(ClickHouseNode.java:892)
        at com.clickhouse.client.ClickHouseNode.of(ClickHouseNode.java:797)
        at com.clickhouse.client.api.Client.lambda$new$0(Client.java:162)
        at java.base/java.lang.Iterable.forEach(Unknown Source)
        at com.clickhouse.client.api.Client.<init>(Client.java:161)
        at com.clickhouse.client.api.Client.<init>(Client.java:116)
        at com.clickhouse.client.api.Client$Builder.build(Client.java:1052)
        at com.clickhouse.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:92)
        ... 35 more
2025-09-01 20:49:00,341 DEBUG middleware.log :: POST /api/database 400 326ms (0 DB calls) {:metabase-user-id 1} 
{:message "Failed to create connection"}

Your hostname analytics_clickhouse is incorrect. It should be a DNS name or IP address. Double check your connection parameters.