0.31 .jar not starting

Just downloaded the 0.31.0 metabase.jar file, and replaced my existing 0.30.4 file with it, but it’s not starting. I let it run for a while, and it showed the “splash screen” (with the progress bar, messages like “Polishing tables”, “Embiggening data” etc) but apparently it stopped because now I’m just getting the “Server Not Found” Firefox page. Replacing the 0.30.4 metabase.jar restores it back to working order.

Any ideas? I’m on Windows, with Metabase running as a service with NSSM.

Start it from the command line and see what it says. That’s where the output will be.

java -jar nameofthemetabase.jar

I’ve had to do it as NSSM doesn’t out of the box log everything in stderr or stdout to a log. I’m sure you could do it, but I plan on overriding the log4js appenders to a custom location with a rolling log for errors.

Here’s what the command line returns:

C:\Metabase>java -jar metabase.jar
11-13 13:50:12 ←[1mINFO metabase.util←[0m :: Loading Metabase...
11-13 13:50:21 ←[1mINFO util.encryption←[0m :: Saved credentials encryption is DISABLED for this Metabase instance.
 For more information, see https://www.metabase.com/docs/latest/operations-guide/start.html#encrypting-your-database-connection-details-at-rest
11-13 13:50:39 ←[1mINFO metabase.core←[0m :: Starting Metabase in STANDALONE mode
11-13 13:50:39 ←[1mINFO metabase.core←[0m :: Launching Embedded Jetty Webserver with config:
 {:port 3000}

11-13 13:50:39 ←[1mINFO metabase.core←[0m :: Starting Metabase version v0.31.0 (adf9a89 release-0.31.0) ...
11-13 13:50:39 ←[1mINFO metabase.core←[0m :: System timezone is 'America/Los_Angeles' ...
WARNING: any? already refers to: #'clojure.core/any? in namespace: monger.collection, being replaced by: #'monger.collection/any?
11-13 13:50:56 ←[1mINFO metabase.core←[0m :: Setting up and migrating Metabase DB. Please sit tight, this may take a minute...
11-13 13:50:56 ←[1mINFO metabase.db←[0m :: Verifying h2 Database Connection ...
11-13 13:50:56 ←[1mINFO metabase.db←[0m :: Verify Database Connection ...
11-13 13:50:56 ←[1mINFO metabase.db←[0m :: Running Database Migrations...
11-13 13:50:56 ←[1mINFO metabase.db←[0m :: Setting up Liquibase...
11-13 13:50:57 ←[1mWARN metabase.util←[0m :: auto-retry metabase.db$run_schema_migrations_BANG_$fn__15456@68f0ee: The database is read only; SQL statement:
UPDATE DATABASECHANGELOG SET FILENAME = ? [90097-197]
11-13 13:50:57 ←[1mINFO metabase.db←[0m :: Setting up Liquibase...
11-13 13:50:57 ←[1mERROR metabase.core←[0m :: Metabase Initialization FAILED
org.h2.jdbc.JdbcBatchUpdateException: The database is read only; SQL statement:
UPDATE DATABASECHANGELOG SET FILENAME = ? [90097-197]
        at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1295)
        at clojure.java.jdbc$execute_batch.invokeStatic(jdbc.clj:539)
        at clojure.java.jdbc$execute_batch.invoke(jdbc.clj:532)
        at clojure.java.jdbc$db_do_execute_prepared_statement$fn__11206.invoke(jdbc.clj:969)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:790)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:730)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_do_execute_prepared_statement.invokeStatic(jdbc.clj:968)
        at clojure.java.jdbc$db_do_execute_prepared_statement.invoke(jdbc.clj:954)
        at clojure.java.jdbc$db_do_prepared.invokeStatic(jdbc.clj:992)
        at clojure.java.jdbc$db_do_prepared.invoke(jdbc.clj:972)
        at clojure.java.jdbc$execute_BANG_$execute_helper__11279.invoke(jdbc.clj:1386)
        at clojure.java.jdbc$execute_BANG_.invokeStatic(jdbc.clj:1388)
        at clojure.java.jdbc$execute_BANG_.invoke(jdbc.clj:1359)
        at clojure.java.jdbc$execute_BANG_.invokeStatic(jdbc.clj:1378)
        at clojure.java.jdbc$execute_BANG_.invoke(jdbc.clj:1359)
        at metabase.db$consolidate_liquibase_changesets.invokeStatic(db.clj:245)
        at metabase.db$consolidate_liquibase_changesets.invoke(db.clj:228)
        at metabase.db$migrate_BANG_$fn__15423.invoke(db.clj:285)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:747)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:782)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:730)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at metabase.db$migrate_BANG_.invokeStatic(db.clj:276)
        at metabase.db$migrate_BANG_.invoke(db.clj:257)
        at metabase.db$run_schema_migrations_BANG_$fn__15456.invoke(db.clj:435)
        at metabase.util$do_with_auto_retries.invokeStatic(util.clj:410)
        at metabase.util$do_with_auto_retries.invoke(util.clj:402)
        at metabase.util$do_with_auto_retries.invokeStatic(util.clj:414)
        at metabase.util$do_with_auto_retries.invoke(util.clj:402)
        at metabase.db$run_schema_migrations_BANG_.invokeStatic(db.clj:434)
        at metabase.db$run_schema_migrations_BANG_.invoke(db.clj:417)
        at metabase.db$setup_db_BANG_.invokeStatic(db.clj:453)
        at metabase.db$setup_db_BANG_.doInvoke(db.clj:446)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at metabase.core$init_BANG_.invokeStatic(core.clj:162)
        at metabase.core$init_BANG_.invoke(core.clj:139)
        at metabase.core$start_normally.invokeStatic(core.clj:246)
        at metabase.core$start_normally.invoke(core.clj:240)
        at metabase.core$_main.invokeStatic(core.clj:266)
        at metabase.core$_main.doInvoke(core.clj:261)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.RestFn.applyTo(RestFn.java:132)
        at metabase.core.main(Unknown Source)
org.h2.jdbc.JdbcSQLException: The database is read only; SQL statement:
UPDATE DATABASECHANGELOG SET FILENAME = ? [90097-197]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
        at org.h2.message.DbException.get(DbException.java:179)
        at org.h2.message.DbException.get(DbException.java:155)
        at org.h2.message.DbException.get(DbException.java:144)
        at org.h2.engine.Database.checkWritingAllowed(Database.java:1989)
        at org.h2.table.Table.checkWritingAllowed(Table.java:1201)
        at org.h2.engine.User.hasRight(User.java:114)
        at org.h2.engine.User.checkRight(User.java:100)
        at org.h2.command.dml.Update.update(Update.java:97)
        at org.h2.command.CommandContainer.update(CommandContainer.java:102)
        at org.h2.command.Command.executeUpdate(Command.java:261)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:199)
        at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1277)
        at clojure.java.jdbc$execute_batch.invokeStatic(jdbc.clj:539)
        at clojure.java.jdbc$execute_batch.invoke(jdbc.clj:532)
        at clojure.java.jdbc$db_do_execute_prepared_statement$fn__11206.invoke(jdbc.clj:969)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:790)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:730)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_do_execute_prepared_statement.invokeStatic(jdbc.clj:968)
        at clojure.java.jdbc$db_do_execute_prepared_statement.invoke(jdbc.clj:954)
        at clojure.java.jdbc$db_do_prepared.invokeStatic(jdbc.clj:992)
        at clojure.java.jdbc$db_do_prepared.invoke(jdbc.clj:972)
        at clojure.java.jdbc$execute_BANG_$execute_helper__11279.invoke(jdbc.clj:1386)
        at clojure.java.jdbc$execute_BANG_.invokeStatic(jdbc.clj:1388)
        at clojure.java.jdbc$execute_BANG_.invoke(jdbc.clj:1359)
        at clojure.java.jdbc$execute_BANG_.invokeStatic(jdbc.clj:1378)
        at clojure.java.jdbc$execute_BANG_.invoke(jdbc.clj:1359)
        at metabase.db$consolidate_liquibase_changesets.invokeStatic(db.clj:245)
        at metabase.db$consolidate_liquibase_changesets.invoke(db.clj:228)
        at metabase.db$migrate_BANG_$fn__15423.invoke(db.clj:285)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:747)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:782)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at clojure.java.jdbc$db_transaction_STAR_.invokeStatic(jdbc.clj:730)
        at clojure.java.jdbc$db_transaction_STAR_.invoke(jdbc.clj:717)
        at metabase.db$migrate_BANG_.invokeStatic(db.clj:276)
        at metabase.db$migrate_BANG_.invoke(db.clj:257)
        at metabase.db$run_schema_migrations_BANG_$fn__15456.invoke(db.clj:435)
        at metabase.util$do_with_auto_retries.invokeStatic(util.clj:410)
        at metabase.util$do_with_auto_retries.invoke(util.clj:402)
        at metabase.util$do_with_auto_retries.invokeStatic(util.clj:414)
        at metabase.util$do_with_auto_retries.invoke(util.clj:402)
        at metabase.db$run_schema_migrations_BANG_.invokeStatic(db.clj:434)
        at metabase.db$run_schema_migrations_BANG_.invoke(db.clj:417)
        at metabase.db$setup_db_BANG_.invokeStatic(db.clj:453)
        at metabase.db$setup_db_BANG_.doInvoke(db.clj:446)
        at clojure.lang.RestFn.invoke(RestFn.java:421)
        at metabase.core$init_BANG_.invokeStatic(core.clj:162)
        at metabase.core$init_BANG_.invoke(core.clj:139)
        at metabase.core$start_normally.invokeStatic(core.clj:246)
        at metabase.core$start_normally.invoke(core.clj:240)
        at metabase.core$_main.invokeStatic(core.clj:266)
        at metabase.core$_main.doInvoke(core.clj:261)
        at clojure.lang.RestFn.invoke(RestFn.java:397)
        at clojure.lang.AFn.applyToHelper(AFn.java:152)
        at clojure.lang.RestFn.applyTo(RestFn.java:132)
        at metabase.core.main(Unknown Source)
11-13 13:50:57 ←[1mINFO metabase.core←[0m :: Metabase Shutting Down ...
11-13 13:50:57 ←[1mINFO metabase.core←[0m :: Metabase Shutdown COMPLETE

Sounds like another case of this issue: https://github.com/metabase/metabase/issues/8909

looks like it, thanks @jornh. I’ll wait for the .1 release

Did the update work for you? I’m just migrating h2 -> postgres on 0.32 and got the same error.

Hi @inesmoskal
It’s not possible to see who you’re replying to, so exactly which error are you seeing?

@flamber, sorry, I was replying to @Bungle.
My command line returns something similar to what @Bungle got.
Command failed with exception: The database is read only; SQL statement: UPDATE DATABASECHANGELOG SET FILENAME = ? [90097-197]

@inesmoskal
Can you post your command (redact any sensitive information).
It sounds like you’re already running Metabase, and then you’re also trying to migrate at the same time? You cannot do that.
Are you using 0.32.9?

@flamber
I’m using this tutorial: https://metabase.com/docs/latest/operations-guide/start.html#migrating-from-using-the-h2-database-to-mysql-or-postgres
and this is my command:

export MB_DB_TYPE=postgres
export MB_DB_DBNAME=metabase_data
export MB_DB_PORT=5432
export MB_DB_USER=<username>
export MB_DB_PASS=<password>
export MB_DB_HOST=localhost
/usr/bin/java -Xms128m -Xmx256m -jar metabase.jar load-from-h2 metabase.db

I use metabase as a service, but I killed it before the migration (stopped and disabled).
edit: yes, the version is 0.32.9

Is it on purpose that you missing export MB_DB_TYPE=postgres ?
You need more memory that that.

It was a typo, when I delete the memory part it still doesn’t work.

@inesmoskal
Can you post the log?