Unable to restart a container with H2

Hi Metabase Team,

I have recently started exploring the Metabase and find it indeed an awesome tool.
But I am facing trouble restarting the container with the H2 database file.

I followed the steps given at /operations-guide/running-metabase-on-docker.html#mounting-a-mapped-file-storage-volume to run the Metabase with a database file on volume mounted in the container. This worked perfectly and created required database files (I noticed it created a folder and then placed the db files inside the folder).

docker run -d -p 3000:3000   -v /data/metabase/db:/metabase-data -e "MB_DB_FILE=/metabase-data/metabase.db" --mount type=bind,source=/data/metabase/plugins,destination=/plugins  --name metabase-dmd metabase/metabase

ls -l /data/metabase/db/metabase.db/
total 10132
-rwxrwxr-x 1 metabase metabase 10371072 Dec 29 21:43 metabase.db.mv.db
-rwxrwxr-x 1 metabase metabase      187 Dec 12 23:38 metabase.db.trace.db

But after the container was stopped, I am not able re-run the container.
I tried these steps on a fresh container with new db file. The container started successfully creating the db files. But when I do a “docker stop container-name” and then “docker start container-name”, I get connection timeout error on the H2 database.

I am running “Metabase v0.37.3”. I get this error: “ERROR driver.util :: Database connection error”.
Full log file is attached.

I tried connecting to the H2 database using following command and I am able to connect and query the data.

java -cp metabase.jar org.h2.tools.Shell -url jdbc:h2:/data/metabase/db/metabase.db/metabase.db

Any help is appreciated. I really want to restore the data from H2 and migrate to Postgres as soon as possible. Tried the Postgres migration command but that also failed with connection error on H2.

migrating-from-h2.html
Full Error Log (Hidden)

Warning: environ value jdk-11.0.7+10 for key :java-version has been overwritten with 11.0.7
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2021-01-05 02:34:39,246 INFO metabase.util :: Maximum memory available to JVM: 972.0 MB
2021-01-05 02:37:12,554 INFO util.encryption :: Saved credentials encryption is DISABLED for this Metabase instance. :unlock:
For more information, see
2021-01-05 02:38:54,939 INFO metabase.core ::
Metabase v0.37.3 (2f1e783 release-x.37.x)

Copyright © 2021 Metabase, Inc.

Metabase Enterprise Edition extensions are NOT PRESENT.
2021-01-05 02:38:55,030 WARN metabase.core :: WARNING: You have enabled namespace tracing, which could log sensitive information like db passwords.
2021-01-05 02:38:55,032 INFO metabase.core :: Starting Metabase in STANDALONE mode
2021-01-05 02:38:55,541 INFO metabase.server :: Launching Embedded Jetty Webserver with config:
{:port 3000, :host “0.0.0.0”}

2021-01-05 02:38:56,132 INFO metabase.core :: Starting Metabase version v0.37.3 (2f1e783 release-x.37.x) …
2021-01-05 02:38:56,931 INFO metabase.core :: System info:
{“file.encoding” “UTF-8”,
“java.runtime.name” “OpenJDK Runtime Environment”,
“java.runtime.version” “11.0.7+10”,
“java.vendor” “AdoptOpenJDK”,
“java.vendor.url” “https://adoptopenjdk.net/”,
“java.version” “11.0.7”,
“java.vm.name” “OpenJDK 64-Bit Server VM”,
“java.vm.version” “11.0.7+10”,
“os.name” “Linux”,
“os.version” “4.14.209-160.339.amzn2.x86_64”,
“user.language” “en”,
“user.timezone” “GMT”}

2021-01-05 02:38:56,936 INFO metabase.plugins :: Loading plugins in /plugins…
2021-01-05 02:39:01,842 INFO plugins.dependencies :: Plugin ‘Metabase BigQuery Driver’ depends on plugin ‘Metabase Google Drivers Shared Dependencies’
2021-01-05 02:39:01,854 INFO plugins.dependencies :: Metabase BigQuery Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? false
2021-01-05 02:39:02,053 INFO plugins.dependencies :: Plugins with unsatisfied deps: [“Metabase BigQuery Driver”]
2021-01-05 02:39:02,435 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :druid…
2021-01-05 02:39:02,449 INFO driver.impl :: Registered driver :druid :truck:
2021-01-05 02:39:02,636 INFO plugins.dependencies :: Plugin ‘Metabase Google Analytics Driver’ depends on plugin ‘Metabase Google Drivers Shared Dependencies’
2021-01-05 02:39:02,642 INFO plugins.dependencies :: Metabase Google Analytics Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? false
2021-01-05 02:39:02,733 INFO plugins.dependencies :: Plugins with unsatisfied deps: [“Metabase BigQuery Driver” “Metabase Google Analytics Driver”]
2021-01-05 02:39:02,744 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :google…
2021-01-05 02:39:02,744 INFO driver.impl :: Registered abstract driver :google :truck:
2021-01-05 02:39:02,745 INFO plugins.dependencies :: Metabase BigQuery Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? true
2021-01-05 02:39:02,745 INFO plugins.dependencies :: Metabase Google Analytics Driver dependency {:plugin Metabase Google Drivers Shared Dependencies} satisfied? true
2021-01-05 02:39:02,746 DEBUG plugins.initialize :: Dependencies satisfied; these plugins will now be loaded: [“Metabase Google Analytics Driver” “Metabase BigQuery Driver”]
2021-01-05 02:39:02,746 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :googleanalytics…
2021-01-05 02:39:02,746 INFO driver.impl :: Registered driver :googleanalytics (parents: [:google]) :truck:
2021-01-05 02:39:02,747 WARN plugins.lazy-loaded-driver :: Warning: plugin manifest for :bigquery does not include connection properties
2021-01-05 02:39:02,747 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :bigquery…
2021-01-05 02:39:05,642 INFO driver.impl :: Registered abstract driver :sql :truck:
Load driver :sql took 3.0 s
2021-01-05 02:39:05,932 INFO driver.impl :: Registered driver :bigquery (parents: [:sql :google]) :truck:
2021-01-05 02:39:06,141 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :mongo…
2021-01-05 02:39:06,152 INFO driver.impl :: Registered driver :mongo :truck:
2021-01-05 02:39:06,441 INFO plugins.dependencies :: Metabase cannot initialize plugin Metabase Oracle Driver due to required dependencies. Metabase requires the Oracle JDBC driver in order to connect to Oracle databases, but we can’t ship it as part of Metabase due to licensing restrictions. See for more details.

2021-01-05 02:39:06,447 INFO plugins.dependencies :: Metabase Oracle Driver dependency {:class oracle.jdbc.OracleDriver} satisfied? false
2021-01-05 02:39:06,448 INFO plugins.dependencies :: Plugins with unsatisfied deps: [“Metabase Oracle Driver”]
2021-01-05 02:39:06,636 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :presto…
2021-01-05 02:39:06,647 INFO driver.impl :: Registered driver :presto (parents: [:sql]) :truck:
2021-01-05 02:39:06,844 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :redshift…
2021-01-05 02:39:08,633 INFO driver.impl :: Registered abstract driver :sql-jdbc (parents: [:sql]) :truck:
Load driver :sql-jdbc took 201.6 ms
2021-01-05 02:39:08,737 INFO driver.impl :: Registered driver :postgres (parents: [:sql-jdbc]) :truck:
Load driver :postgres took 2.0 s
2021-01-05 02:39:08,942 INFO driver.impl :: Registered driver :redshift (parents: [:postgres]) :truck:
2021-01-05 02:39:09,345 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :snowflake…
2021-01-05 02:39:09,350 INFO driver.impl :: Registered driver :snowflake (parents: [:sql-jdbc]) :truck:
2021-01-05 02:39:09,943 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :hive-like…
2021-01-05 02:39:09,948 INFO driver.impl :: Registered abstract driver :hive-like (parents: [:sql-jdbc]) :truck:
2021-01-05 02:39:09,949 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sparksql…
2021-01-05 02:39:09,950 INFO driver.impl :: Registered driver :sparksql (parents: [:hive-like]) :truck:
2021-01-05 02:39:10,035 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sqlite…
2021-01-05 02:39:10,042 INFO driver.impl :: Registered driver :sqlite (parents: [:sql-jdbc]) :truck:
2021-01-05 02:39:10,232 DEBUG plugins.lazy-loaded-driver :: Registering lazy loading driver :sqlserver…
2021-01-05 02:39:10,234 INFO driver.impl :: Registered driver :sqlserver (parents: [:sql-jdbc]) :truck:
2021-01-05 02:39:10,249 INFO plugins.dependencies :: Metabase cannot initialize plugin Metabase Vertica Driver due to required dependencies. Metabase requires the Vertica JDBC driver in order to connect to Vertica databases, but we can’t ship it as part of Metabase due to licensing restrictions. See for more details.

2021-01-05 02:39:10,341 INFO plugins.dependencies :: Metabase Vertica Driver dependency {:class com.vertica.jdbc.Driver} satisfied? false
2021-01-05 02:39:10,343 INFO plugins.dependencies :: Plugins with unsatisfied deps: [“Metabase Oracle Driver” “Metabase Vertica Driver”]
2021-01-05 02:39:10,353 INFO driver.impl :: Registered driver :h2 (parents: [:sql-jdbc]) :truck:
2021-01-05 02:39:10,549 INFO driver.impl :: Registered driver :mysql (parents: [:sql-jdbc]) :truck:
2021-01-05 02:39:10,744 INFO metabase.core :: Setting up and migrating Metabase DB. Please sit tight, this may take a minute…
2021-01-05 02:39:10,747 WARN metabase.db :: WARNING: Using Metabase with an H2 application database is not recommended for production deployments. For production deployments, we highly recommend using Postgres, MySQL, or MariaDB instead. If you decide to continue to use H2, please be sure to back up the database file regularly. For more information, see
2021-01-05 02:39:10,749 INFO metabase.db :: Verifying h2 Database Connection …
2021-01-05 02:39:10,842 INFO driver.impl :: Initializing driver :sql…
2021-01-05 02:39:10,844 INFO driver.impl :: Initializing driver :sql-jdbc…
2021-01-05 02:39:10,851 INFO driver.impl :: Initializing driver :h2…
2021-01-05 02:39:15,942 ERROR driver.util :: Database connection error
java.util.concurrent.TimeoutException: Timed out after 5.0 s
at metabase.util$deref_with_timeout.invokeStatic(util.clj:315) ~[metabase.jar:?]
at metabase.util$deref_with_timeout.invoke(util.clj:307) ~[metabase.jar:?]
at metabase.util$do_with_timeout.invokeStatic(util.clj:321) ~[metabase.jar:?]
at metabase.util$do_with_timeout.invoke(util.clj:318) ~[metabase.jar:?]
at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:34) [metabase.jar:?]
at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:23) [metabase.jar:?]
at clojure.lang.RestFn.invoke(RestFn.java:442) [metabase.jar:?]
at clojure.lang.Var.invoke(Var.java:393) [metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790$fn__21793$fn__21794.invoke(db.clj:316) [metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790$fn__21793.invoke(db.clj:315) [metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790.invoke(db.clj:307) [metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790$fn__21791.invoke(db.clj:310) [metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790.invoke(db.clj:307) [metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_$fn__21829.invoke(db.clj:352) [metabase.jar:?]
at metabase.util$do_with_us_locale.invokeStatic(util.clj:670) [metabase.jar:?]
at metabase.util$do_with_us_locale.invoke(util.clj:656) [metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_.invokeStatic(db.clj:351) [metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_.invoke(db.clj:346) [metabase.jar:?]
at metabase.db$setup_db_from_env_BANG_.invokeStatic(db.clj:365) [metabase.jar:?]
at metabase.db$setup_db_from_env_BANG_.invoke(db.clj:358) [metabase.jar:?]
at metabase.db$setup_db_BANG_$fn__21834.invoke(db.clj:375) [metabase.jar:?]
at metabase.db$setup_db_BANG_.invokeStatic(db.clj:373) [metabase.jar:?]
at metabase.db$setup_db_BANG_.invoke(db.clj:368) [metabase.jar:?]
at metabase.core$init_BANG_.invokeStatic(core.clj:96) [metabase.jar:?]
at metabase.core$init_BANG_.invoke(core.clj:75) [metabase.jar:?]
at metabase.core$start_normally.invokeStatic(core.clj:140) [metabase.jar:?]
at metabase.core$start_normally.invoke(core.clj:134) [metabase.jar:?]
at metabase.core$main.invokeStatic(core.clj:173) [metabase.jar:?]
at metabase.core$main.doInvoke(core.clj:167) [metabase.jar:?]
at clojure.lang.RestFn.invoke(RestFn.java:397) [metabase.jar:?]
at clojure.lang.AFn.applyToHelper(AFn.java:152) [metabase.jar:?]
at clojure.lang.RestFn.applyTo(RestFn.java:132) [metabase.jar:?]
at metabase.core.main(Unknown Source) [metabase.jar:?]
2021-01-05 02:39:16,733 ERROR metabase.core :: Metabase Initialization FAILED
java.lang.Exception: Timed out after 5.0 s
at metabase.driver.util$can_connect_with_details_QMARK
.invokeStatic(util.clj:40) ~[metabase.jar:?]
at metabase.driver.util$can_connect_with_details_QMARK
.doInvoke(util.clj:23) ~[metabase.jar:?]
at clojure.lang.RestFn.invoke(RestFn.java:442) ~[metabase.jar:?]
at clojure.lang.Var.invoke(Var.java:393) ~[metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790$fn__21793$fn__21794.invoke(db.clj:316) ~[metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790$fn__21793.invoke(db.clj:315) ~[metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790.invoke(db.clj:307) ~[metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790$fn__21791.invoke(db.clj:310) ~[metabase.jar:?]
at metabase.db$fn__21781$verify_db_connection__21790.invoke(db.clj:307) ~[metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_$fn__21829.invoke(db.clj:352) ~[metabase.jar:?]
at metabase.util$do_with_us_locale.invokeStatic(util.clj:670) ~[metabase.jar:?]
at metabase.util$do_with_us_locale.invoke(util.clj:656) ~[metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_.invokeStatic(db.clj:351) ~[metabase.jar:?]
at metabase.db$setup_db_BANG__STAR_.invoke(db.clj:346) ~[metabase.jar:?]
at metabase.db$setup_db_from_env_BANG_.invokeStatic(db.clj:365) ~[metabase.jar:?]
at metabase.db$setup_db_from_env_BANG_.invoke(db.clj:358) ~[metabase.jar:?]
at metabase.db$setup_db_BANG_$fn__21834.invoke(db.clj:375) ~[metabase.jar:?]
at metabase.db$setup_db_BANG_.invokeStatic(db.clj:373) ~[metabase.jar:?]
at metabase.db$setup_db_BANG_.invoke(db.clj:368) ~[metabase.jar:?]
at metabase.core$init_BANG_.invokeStatic(core.clj:96) ~[metabase.jar:?]
at metabase.core$init_BANG_.invoke(core.clj:75) ~[metabase.jar:?]
at metabase.core$start_normally.invokeStatic(core.clj:140) [metabase.jar:?]
at metabase.core$start_normally.invoke(core.clj:134) [metabase.jar:?]
at metabase.core$_main.invokeStatic(core.clj:173) [metabase.jar:?]
at metabase.core$main.doInvoke(core.clj:167) [metabase.jar:?]
at clojure.lang.RestFn.invoke(RestFn.java:397) [metabase.jar:?]
at clojure.lang.AFn.applyToHelper(AFn.java:152) [metabase.jar:?]
at clojure.lang.RestFn.applyTo(RestFn.java:132) [metabase.jar:?]
at metabase.core.main(Unknown Source) [metabase.jar:?]
Caused by: java.util.concurrent.TimeoutException: Timed out after 5.0 s
at metabase.util$deref_with_timeout.invokeStatic(util.clj:315) ~[metabase.jar:?]
at metabase.util$deref_with_timeout.invoke(util.clj:307) ~[metabase.jar:?]
at metabase.util$do_with_timeout.invokeStatic(util.clj:321) ~[metabase.jar:?]
at metabase.util$do_with_timeout.invoke(util.clj:318) ~[metabase.jar:?]
at metabase.driver.util$can_connect_with_details_QMARK
.invokeStatic(util.clj:34) ~[metabase.jar:?]
… 28 more
2021-01-05 02:39:16,846 INFO metabase.core :: Metabase Shutting Down …
2021-01-05 02:39:16,851 INFO metabase.server :: Shutting Down Embedded Jetty Webserver
2021-01-05 02:39:16,943 INFO middleware.exceptions :: Request canceled before finishing.
2021-01-05 02:39:17,243 ERROR metabase.server :: Unexpected Exception in API request handler
org.eclipse.jetty.io.EofException: Closed
at org.eclipse.jetty.server.HttpOutput.checkWritable(HttpOutput.java:733) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:963) ~[metabase.jar:?]
at java.io.FilterOutputStream.write(Unknown Source) ~[?:?]
at ring.util.servlet.proxy$java.io.FilterOutputStream$ff19274a.write(Unknown Source) ~[metabase.jar:?]
at java.io.FilterOutputStream.write(Unknown Source) ~[?:?]
at ring.util.servlet.proxy$java.io.FilterOutputStream$ff19274a.write(Unknown Source) ~[metabase.jar:?]
at clojure.java.io$fn__11530.invokeStatic(io.clj:307) ~[metabase.jar:?]
at clojure.java.io$fn__11530.invoke(io.clj:302) ~[metabase.jar:?]
at clojure.lang.MultiFn.invoke(MultiFn.java:239) ~[metabase.jar:?]
at clojure.java.io$copy.invokeStatic(io.clj:406) ~[metabase.jar:?]
at clojure.java.io$copy.doInvoke(io.clj:391) ~[metabase.jar:?]
at clojure.lang.RestFn.invoke(RestFn.java:425) ~[metabase.jar:?]
at ring.core.protocols$fn__24523.invokeStatic(protocols.clj:36) ~[metabase.jar:?]
at ring.core.protocols$fn__24523.invoke(protocols.clj:19) ~[metabase.jar:?]
at ring.core.protocols$fn__24494$G__24489__24503.invoke(protocols.clj:8) ~[metabase.jar:?]
at ring.util.servlet$update_servlet_response.invokeStatic(servlet.clj:106) ~[metabase.jar:?]
at ring.util.servlet$update_servlet_response.invoke(servlet.clj:91) ~[metabase.jar:?]
at metabase.server.protocols$fn__24616.invokeStatic(protocols.clj:27) ~[metabase.jar:?]
at metabase.server.protocols$fn__24616.invoke(protocols.clj:20) ~[metabase.jar:?]
at metabase.server.protocols$fn__24592$fn__24595$G__24593__24602.invoke(protocols.clj:5) ~[metabase.jar:?]
at metabase.server$async_proxy_handler$fn__74597$fn__74607.invoke(server.clj:75) ~[metabase.jar:?]
at ring.middleware.gzip$wrap_gzip$fn__75047$fn__75048.invoke(gzip.clj:89) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at ring.middleware.cookies$wrap_cookies$fn__75005$fn__75006.invoke(cookies.clj:217) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at metabase.middleware.exceptions$catch_uncaught_exceptions$fn__73034.invoke(exceptions.clj:106) ~[metabase.jar:?]
at metabase.middleware.exceptions$catch_api_exceptions$fn__73031.invoke(exceptions.clj:84) ~[metabase.jar:?]
at metabase.middleware.log$log_api_call$fn__74819.invoke(log.clj:189) ~[metabase.jar:?]
at metabase.middleware.security$add_security_headers$fn__72997.invoke(security.clj:143) ~[metabase.jar:?]
at metabase.middleware.json$wrap_json_body$fn__74522.invoke(json.clj:66) ~[metabase.jar:?]
at metabase.middleware.json$wrap_streamed_json_response$fn__74540.invoke(json.clj:100) ~[metabase.jar:?]
at ring.middleware.keyword_params$wrap_keyword_params$fn__75085.invoke(keyword_params.clj:55) ~[metabase.jar:?]
at ring.middleware.params$wrap_params$fn__75101.invoke(params.clj:69) ~[metabase.jar:?]
at metabase.middleware.misc$maybe_set_site_url$fn__37893.invoke(misc.clj:59) ~[metabase.jar:?]
at metabase.middleware.session$bind_current_user$fn__69476$fn__69477.invoke(session.clj:278) ~[metabase.jar:?]
at metabase.middleware.session$do_with_current_user.invokeStatic(session.clj:260) ~[metabase.jar:?]
at metabase.middleware.session$do_with_current_user.invoke(session.clj:252) ~[metabase.jar:?]
at metabase.middleware.session$bind_current_user$fn__69476.invoke(session.clj:277) ~[metabase.jar:?]
at metabase.middleware.session$wrap_current_user_info$fn__69463.invoke(session.clj:238) ~[metabase.jar:?]
at metabase.middleware.session$wrap_session_id$fn__69449.invoke(session.clj:184) ~[metabase.jar:?]
at metabase.middleware.auth$wrap_api_key$fn__72930.invoke(auth.clj:27) ~[metabase.jar:?]
at ring.middleware.cookies$wrap_cookies$fn__75005.invoke(cookies.clj:216) ~[metabase.jar:?]
at metabase.middleware.misc$add_content_type$fn__37878.invoke(misc.clj:28) ~[metabase.jar:?]
at metabase.middleware.misc$disable_streaming_buffering$fn__37901.invoke(misc.clj:76) ~[metabase.jar:?]
at ring.middleware.gzip$wrap_gzip$fn__75047.invoke(gzip.clj:86) ~[metabase.jar:?]
at metabase.middleware.misc$bind_request$fn__37904.invoke(misc.clj:93) ~[metabase.jar:?]
at metabase.middleware.ssl$redirect_to_https_middleware$fn__74836.invoke(ssl.clj:36) ~[metabase.jar:?]
at metabase.server$async_proxy_handler$fn__74597.invoke(server.clj:72) ~[metabase.jar:?]
at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source) ~[metabase.jar:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[metabase.jar:?]
at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) [metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [metabase.jar:?]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) [metabase.jar:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [metabase.jar:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [metabase.jar:?]
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [metabase.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773) [metabase.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905) [metabase.jar:?]
at java.lang.Thread.run(Unknown Source) [?:?]
2021-01-05 02:39:17,248 ERROR metabase.server :: Unexpected exception in endpoint
org.eclipse.jetty.io.EofException: Closed
at org.eclipse.jetty.server.HttpOutput.checkWritable(HttpOutput.java:733) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:963) ~[metabase.jar:?]
at java.io.FilterOutputStream.write(Unknown Source) ~[?:?]
at ring.util.servlet.proxy$java.io.FilterOutputStream$ff19274a.write(Unknown Source) ~[metabase.jar:?]
at java.io.FilterOutputStream.write(Unknown Source) ~[?:?]
at ring.util.servlet.proxy$java.io.FilterOutputStream$ff19274a.write(Unknown Source) ~[metabase.jar:?]
at clojure.java.io$fn__11530.invokeStatic(io.clj:307) ~[metabase.jar:?]
at clojure.java.io$fn__11530.invoke(io.clj:302) ~[metabase.jar:?]
at clojure.lang.MultiFn.invoke(MultiFn.java:239) ~[metabase.jar:?]
at clojure.java.io$copy.invokeStatic(io.clj:406) ~[metabase.jar:?]
at clojure.java.io$copy.doInvoke(io.clj:391) ~[metabase.jar:?]
at clojure.lang.RestFn.invoke(RestFn.java:425) ~[metabase.jar:?]
at ring.core.protocols$fn__24523.invokeStatic(protocols.clj:36) ~[metabase.jar:?]
at ring.core.protocols$fn__24523.invoke(protocols.clj:19) ~[metabase.jar:?]
at ring.core.protocols$fn__24494$G__24489__24503.invoke(protocols.clj:8) ~[metabase.jar:?]
at ring.util.servlet$update_servlet_response.invokeStatic(servlet.clj:106) ~[metabase.jar:?]
at ring.util.servlet$update_servlet_response.invoke(servlet.clj:91) ~[metabase.jar:?]
at metabase.server.protocols$fn__24616.invokeStatic(protocols.clj:27) ~[metabase.jar:?]
at metabase.server.protocols$fn__24616.invoke(protocols.clj:20) ~[metabase.jar:?]
at metabase.server.protocols$fn__24592$fn__24595$G__24593__24602.invoke(protocols.clj:5) ~[metabase.jar:?]
at metabase.server$async_proxy_handler$fn__74597$fn__74607.invoke(server.clj:75) ~[metabase.jar:?]
at ring.middleware.gzip$wrap_gzip$fn__75047$fn__75048.invoke(gzip.clj:89) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at ring.middleware.cookies$wrap_cookies$fn__75005$fn__75006.invoke(cookies.clj:217) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at clojure.core$comp$fn__5807.invoke(core.clj:2569) ~[metabase.jar:?]
at metabase.middleware.exceptions$catch_uncaught_exceptions$fn__73034.invoke(exceptions.clj:106) ~[metabase.jar:?]
at metabase.middleware.exceptions$catch_api_exceptions$fn__73031.invoke(exceptions.clj:84) ~[metabase.jar:?]
at metabase.middleware.log$log_api_call$fn__74819.invoke(log.clj:189) ~[metabase.jar:?]
at metabase.middleware.security$add_security_headers$fn__72997.invoke(security.clj:143) ~[metabase.jar:?]
at metabase.middleware.json$wrap_json_body$fn__74522.invoke(json.clj:66) ~[metabase.jar:?]
at metabase.middleware.json$wrap_streamed_json_response$fn__74540.invoke(json.clj:100) ~[metabase.jar:?]
at ring.middleware.keyword_params$wrap_keyword_params$fn__75085.invoke(keyword_params.clj:55) ~[metabase.jar:?]
at ring.middleware.params$wrap_params$fn__75101.invoke(params.clj:69) ~[metabase.jar:?]
at metabase.middleware.misc$maybe_set_site_url$fn__37893.invoke(misc.clj:59) ~[metabase.jar:?]
at metabase.middleware.session$bind_current_user$fn__69476$fn__69477.invoke(session.clj:278) ~[metabase.jar:?]
at metabase.middleware.session$do_with_current_user.invokeStatic(session.clj:260) ~[metabase.jar:?]
at metabase.middleware.session$do_with_current_user.invoke(session.clj:252) ~[metabase.jar:?]
at metabase.middleware.session$bind_current_user$fn__69476.invoke(session.clj:277) ~[metabase.jar:?]
at metabase.middleware.session$wrap_current_user_info$fn__69463.invoke(session.clj:238) ~[metabase.jar:?]
at metabase.middleware.session$wrap_session_id$fn__69449.invoke(session.clj:184) ~[metabase.jar:?]
at metabase.middleware.auth$wrap_api_key$fn__72930.invoke(auth.clj:27) ~[metabase.jar:?]
at ring.middleware.cookies$wrap_cookies$fn__75005.invoke(cookies.clj:216) ~[metabase.jar:?]
at metabase.middleware.misc$add_content_type$fn__37878.invoke(misc.clj:28) ~[metabase.jar:?]
at metabase.middleware.misc$disable_streaming_buffering$fn__37901.invoke(misc.clj:76) ~[metabase.jar:?]
at ring.middleware.gzip$wrap_gzip$fn__75047.invoke(gzip.clj:86) ~[metabase.jar:?]
at metabase.middleware.misc$bind_request$fn__37904.invoke(misc.clj:93) ~[metabase.jar:?]
at metabase.middleware.ssl$redirect_to_https_middleware$fn__74836.invoke(ssl.clj:36) ~[metabase.jar:?]
at metabase.server$async_proxy_handler$fn__74597.invoke(server.clj:72) ~[metabase.jar:?]
at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source) ~[metabase.jar:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[metabase.jar:?]
at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) [metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [metabase.jar:?]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) [metabase.jar:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [metabase.jar:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [metabase.jar:?]
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [metabase.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773) [metabase.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905) [metabase.jar:?]
at java.lang.Thread.run(Unknown Source) [?:?]
2021-01-05 02:39:17,341 ERROR metabase.server :: Unexpected exception writing error response
java.lang.IllegalStateException: ABORTED
at org.eclipse.jetty.server.HttpChannelState.sendError(HttpChannelState.java:896) ~[metabase.jar:?]
at org.eclipse.jetty.server.Response.sendError(Response.java:468) ~[metabase.jar:?]
at metabase.server$async_proxy_handler$fn__74597$raise__74599$fn__74600.invoke(server.clj:67) ~[metabase.jar:?]
at metabase.server$async_proxy_handler$fn__74597$raise__74599.invoke(server.clj:66) ~[metabase.jar:?]
at metabase.server$async_proxy_handler$fn__74597.invoke(server.clj:83) ~[metabase.jar:?]
at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source) ~[metabase.jar:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[metabase.jar:?]
at org.eclipse.jetty.server.Server.handle(Server.java:516) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) ~[metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) [metabase.jar:?]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [metabase.jar:?]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) [metabase.jar:?]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [metabase.jar:?]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) [metabase.jar:?]
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) [metabase.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773) [metabase.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905) [metabase.jar:?]
at java.lang.Thread.run(Unknown Source) [?:?]
2021-01-05 02:39:17,345 INFO metabase.core :: Metabase Shutdown COMPLETE

Hi @rahul168
The easiest is to run Metabase via the JAR and do the migration away from H2, since it’s a once-off process. Then you can use Docker setup to Postgres.

Thanks @flamber for your response. Initially all attempts to connect to the H2 database failed even using the JAR method. Since I was successfully able to connect to the H2 database using the following command, it did not make sense that the metabase.jar was complaining while launching the metabase with connection error.

java -cp metabase.jar org.h2.tools.Shell -url jdbc:h2:/data/metabase/db/metabase.db/metabase.db

After some trial I am able to connect after going back a version to v1.37.3 of the metabase JAR. And ran the migration to Postgres to never deal with this panic situation again.
Hoping the postgres + metabase integration is stable!

Are there any special guidelines to keep in mind while doing metabase upgrade to prevent any data corruption?

@rahul168 I’m not sure what happened, but perhaps some process was locking the H2 file.
Yes, H2 should never be used in production. Everybody uses Postgres or MariaDB/MySQL.
The best way to protect yourself is just to make backups before doing any major things like upgrading.