Update nodes cause metabase in CrashLoopBackoff. Relation databasechangelog does not exist

Hello Metabase Support,

We have a license with metabase. Our company name is US AI. If possible, we can get on a google meeting so I can share my screen. Thanks.

Yesterday, we updated the cluster with new nodes. Metabase pods got refresh and they can’t come up. When I look at the log, I found that:

2026-08-07 15:44:03,688 INFO app-db.setup :: Successfully verified PostgreSQL 15.17 - Percona Distribution application database connection. :white_check_mark:

2026-08-07 15:44:03,689 INFO app-db.setup :: Checking if a database downgrade is required...

2026-08-07 15:44:03,746 ERROR core.core :: Metabase Initialization FAILED

org.postgresql.util.PSQLException: ERROR: relation "databasechangelog" does not exist

Position: 16

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2734)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2421)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:372)

at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:518)

at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:435)

at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:196)

at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:139)

at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:1185)

at clojure.java.jdbc$execute_query_with_params.invokeStatic(jdbc.clj:1090)

at clojure.java.jdbc$execute_query_with_params.invoke(jdbc.clj:1084)

at clojure.java.jdbc$db_query_with_resultset_STAR\_.invokeStatic(jdbc.clj:1106)

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.app_db.liquibase$decide_liquibase_file.invokeStatic(liquibase.clj:90)

at metabase.app_db.liquibase$decide_liquibase_file.invoke(liquibase.clj:86)

at metabase.app_db.liquibase$liquibase.invokeStatic(liquibase.clj:126)

at metabase.app_db.liquibase$liquibase.invoke(liquibase.clj:124)

at metabase.app_db.liquibase$do_with_liquibase.invokeStatic(liquibase.clj:143)

at metabase.app_db.liquibase$do_with_liquibase.invoke(liquibase.clj:130)

at metabase.app_db.setup$error_if_downgrade_required_BANG\_.invokeStatic(setup.clj:166)

at metabase.app_db.setup$error_if_downgrade_required_BANG\_.invoke(setup.clj:162)

at metabase.app_db.setup$setup_db_BANG\_$fn__46448$fn__46449.invoke(setup.clj:210)

at metabase.util.jvm$do_with_us_locale.invokeStatic(jvm.clj:251)

at metabase.util.jvm$do_with_us_locale.invoke(jvm.clj:237)

at metabase.app_db.setup$setup_db_BANG\_$fn__46448.invoke(setup.clj:205)

at metabase.app_db.setup$setup_db_BANG\_.invokeStatic(setup.clj:204)

at metabase.app_db.setup$setup_db_BANG\_.invoke(setup.clj:197)

at metabase.app_db.core$setup_db_BANG\_$fn__46652.invoke(core.clj:123)

at metabase.app_db.core$setup_db_BANG\_.invokeStatic(core.clj:118)

at metabase.app_db.core$setup_db_BANG\_.doInvoke(core.clj:105)

at clojure.lang.RestFn.invoke(RestFn.java:424)

at metabase.core.core$init_BANG__STAR\_.invokeStatic(core.clj:179)

at metabase.core.core$init_BANG__STAR\_.invoke(core.clj:156)

at metabase.core.core$init_BANG\_.invokeStatic(core.clj:235)

at metabase.core.core$init_BANG\_.invoke(core.clj:229)

at metabase.core.core$start_normally.invokeStatic(core.clj:255)

at metabase.core.core$start_normally.invoke(core.clj:247)

at metabase.core.core$entrypoint.invokeStatic(core.clj:290)

at metabase.core.core$entrypoint.doInvoke(core.clj:281)

at clojure.lang.RestFn.invoke(RestFn.java:400)

at clojure.lang.AFn.applyToHelper(AFn.java:152)

at clojure.lang.RestFn.applyTo(RestFn.java:135)

at clojure.lang.Var.applyTo(Var.java:707)

at clojure.core$apply.invokeStatic(core.clj:667)

at clojure.core$apply.invoke(core.clj:662)

at metabase.core.bootstrap$\_main.invokeStatic(bootstrap.clj:36)

at metabase.core.bootstrap$\_main.doInvoke(bootstrap.clj:29)

at clojure.lang.RestFn.invoke(RestFn.java:400)

at clojure.lang.AFn.applyToHelper(AFn.java:152)

at clojure.lang.RestFn.applyTo(RestFn.java:135)

at metabase.core.bootstrap.main(Unknown Source)

2026-08-07 15:44:03,757 INFO core.core :: Metabase Shutting Down ...

2026-08-07 15:44:03,758 INFO server.instance :: Shutting Down Embedded Jetty Webserver

2026-08-07 15:44:03,767 INFO notification.send :: Shutting down notification dispatchers... {mb-dispatcher-count=2}

2026-08-07 15:44:03,770 INFO notification.send :: Starting notification thread pool with 3 threads {mb-dispatcher-count=2}

2026-08-07 15:44:03,772 INFO notification.send :: Gracefully shutting down notification dispatcher with 0 pending notifications to process {mb-dispatcher-count=2}

2026-08-07 15:44:04,773 INFO notification.send :: Notification worker shut down successfully {mb-dispatcher-count=2}

I didn’t update/upgrade the metabase at all.

Please help me to bring back the metabase.

Thanks.

PN

If you have a paid license you can contact Metabase support directly.

Otherwise, check your App DB connection settings in the environment. It seems to be connecting to a database that isn’t a Metabase app database.

@paulngo please email help at metabase dot com

That error means Metabase is connecting to a database where Liquibase's tables aren't visible, so it's almost certainly pointing at the wrong DB, schema, or an empty one, not that your data is gone. Since you changed nodes and not Metabase itself, check the connection env vars (host, db name, user, search_path). A different Postgres user often defaults to a schema where databasechangelog isn't found. Verify the table's actually there with the same creds the pod uses.