Version 60, I encounter error in transform in materializing into table. It gives me error upon running.
What error?
Have you encountered the same problem?
This happened after I upgraded to v.60. This was working fine at v.59.6.
Can you check the logs and see if an exception is there? Seems like something thinks something went wrong but the other says it worked.
EXCEPTION LOG:
[1db75cbd-35a2-4447-a33c-d9b4d6dfbba4] 2026-04-19T13:44:14+08:00 ERROR metabase.server.middleware.log POST /api/transform/3/run 500 25ms (3 DB calls) {:metabase-user-id 1} {:via [{:type clojure.lang.ExceptionInfo, :message "Could not locate metabase_enterprise/database_routing/model__init.class, metabase_enterprise/database_routing/model.clj or metabase_enterprise/database_routing/model.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.", :data {:classloader #object[clojure.lang.DynamicClassLoader 0x7d21852b "clojure.lang.DynamicClassLoader@7d21852b"], :classpath-urls ("file:/plugins/sqlserver.metabase-driver.jar"), :system-classpath ("/app/metabase.jar"), :toucan2/context-trace [["with unparsed args" {:toucan2.pipeline/query-type :toucan.query-type/select.exists, :toucan2.pipeline/unparsed-args (:model/DatabaseRouter :database_id 2)}]]}, :at [metabase.classloader.impl$require_STAR_ invokeStatic "impl.clj" 132]} {:type java.io.FileNotFoundException, :message "Could not locate metabase_enterprise/database_routing/model__init.class, metabase_enterprise/database_routing/model.clj or metabase_enterprise/database_routing/model.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.", :at [clojure.lang.RT load "RT.java" 482]}], :trace [[clojure.lang.RT load "RT.java" 482] [clojure.lang.RT load "RT.java" 444] [clojure.core$load$fn__6933 invoke "core.clj" 6189] [clojure.core$load invokeStatic "core.clj" 6188] [clojure.core$load doInvoke "core.clj" 6172] [clojure.lang.RestFn invoke "RestFn.java" 411] [clojure.core$load_one invokeStatic "core.clj" 5961] [clojure.core$load_one invoke "core.clj" 5956] [clojure.core$load_lib$fn__6875 invoke "core.clj" 6003] [clojure.core$load_lib invokeStatic "core.clj" 6002] [clojure.core$load_lib doInvoke "core.clj" 5981] [clojure.lang.RestFn applyTo "RestFn.java" 145] [clojure.core$apply invokeStatic "core.clj" 669] [clojure.core$load_libs invokeStatic "core.clj" 6044] [clojure.core$load_libs doInvoke "core.clj" 6028] [clojure.lang.RestFn applyTo "RestFn.java" 140] [clojure.core$apply invokeStatic "core.clj" 669] [clojure.core$require invokeStatic "core.clj" 6066] [clojure.core$require doInvoke "core.clj" 6066] [clojure.lang.RestFn applyTo "RestFn.java" 140] [clojure.core$apply invokeStatic "core.clj" 667] [clojure.core$apply invoke "core.clj" 662] [metabase.classloader.impl$require_STAR_ invokeStatic "impl.clj" 130] [metabase.classloader.impl$require_STAR_ doInvoke "impl.clj" 116] [clojure.lang.RestFn invoke "RestFn.java" 411] [metabase.classloader.impl$require invokeStatic "impl.clj" 151] [metabase.classloader.impl$require invoke "impl.clj" 138] [metabase.models.resolution$resolve_model_before_method_default invokeStatic "resolution.clj" 154] [metabase.models.resolution$resolve_model_before_method_default invoke "resolution.clj" 144] [methodical.impl.combo.threaded$combine_methods_thread_last$fn__36517$combined_method_thread_last__36518 invoke "threaded.clj" 60] [methodical.util.FnWithMeta invoke "util.clj" 46] [toucan2.model$resolve_model_around_method_default invokeStatic "model.clj" 38] [toucan2.model$resolve_model_around_method_default invoke "model.clj" 35] [methodical.impl.combo.common$partial_STAR_$fn__36207 invoke "common.clj" 11] [methodical.util.FnWithMeta invoke "util.clj" 46] [methodical.impl.standard$invoke_multifn invokeStatic "standard.clj" 52] [methodical.impl.standard$invoke_multifn invoke "standard.clj" 47] [methodical.impl.standard.StandardMultiFn invoke "standard.clj" 208] [toucan2.pipeline$transduce_parsed invokeStatic "pipeline.clj" 307] [toucan2.pipeline$transduce_parsed invoke "pipeline.clj" 295] [toucan2.pipeline$transduce_unparsed invokeStatic "pipeline.clj" 317] [toucan2.pipeline$transduce_unparsed invoke "pipeline.clj" 311] [toucan2.select$exists_QMARK_ invokeStatic "select.clj" 286] [toucan2.select$exists_QMARK_ doInvo... [1db75cbd-35a2-4447-a33c-d9b4d6dfbba4] 2026-04-19T13:57:58+08:00 ERROR metabase.transforms.query-impl Error executing transform,clojure.lang.ExceptionInfo: Could not locate metabase_enterprise/database_routing/model__init.class, metabase_enterprise/database_routing/model.clj or metabase_enterprise/database_routing/model.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name. {:classloader #object[clojure.lang.DynamicClassLoader 0x7d21852b "clojure.lang.DynamicClassLoader@7d21852b"], :classpath-urls ("file:/plugins/sqlserver.metabase-driver.jar"), :system-classpath ("/app/m..., at metabase.classloader.impl$require_STAR_.invokeStatic(impl.clj:132), at metabase.classloader.impl$require_STAR_.doInvoke(impl.clj:116), at clojure.lang.RestFn.invoke(RestFn.java:411), at metabase.classloader.impl$require.invokeStatic(impl.clj:151), at metabase.classloader.impl$require.invoke(impl.clj:138), at metabase.models.resolution$resolve_model_before_method_default.invokeStatic(resolution.clj:154), at metabase.models.resolution$resolve_model_before_method_default.invoke(resolution.clj:144), at methodical.impl.combo.threaded$combine_methods_thread_last$fn__36517$combined_method_thread_last__36518.invoke(threaded.clj:60), at methodical.util.FnWithMeta.invoke(util.clj:46), at toucan2.model$resolve_model_around_method_default.invokeStatic(model.clj:38), at toucan2.model$resolve_model_around_method_default.invoke(model.clj:35), at methodical.impl.combo.common$partial_STAR_$fn__36207.invoke(common.clj:11), at methodical.util.FnWithMeta.invoke(util.clj:46), at methodical.impl.standard$invoke_multifn.invokeStatic(standard.clj:52), at methodical.impl.standard$invoke_multifn.invoke(standard.clj:47), at methodical.impl.standard.StandardMultiFn.invoke(standard.clj:208), at toucan2.pipeline$transduce_parsed.invokeStatic(pipeline.clj:307), at toucan2.pipeline$transduce_parsed.invoke(pipeline.clj:295), at toucan2.pipeline$transduce_unparsed.invokeStatic(pipeline.clj:317) [1db75cbd-35a2-4447-a33c-d9b4d6dfbba4] 2026-04-19T13:57:58+08:00 ERROR metabase.server.middleware.log POST /api/transform/1/run 500 27ms (3 DB calls) {:metabase-user-id 1} {:via
DIAGNOSTIC LOG:
{
"browser-info": {
"language": "en",
"platform": "Win32",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36",
"vendor": "Google Inc."
},
"metabase-info": {
"databases": [
"sqlserver"
],
"run-mode": "prod",
"plan-alias": "",
"version": {
"date": "2026-04-17",
"tag": "v0.60.1.3",
"hash": "27ffab3"
},
"settings": {
"report-timezone": null
},
"hosting-env": "unknown",
"application-database": "postgres",
"application-database-details": {
"database": {
"name": "PostgreSQL",
"version": "18.2 (Debian 18.2-1.pgdg13+1)"
},
"jdbc-driver": {
"name": "PostgreSQL JDBC Driver",
"version": "42.7.8"
}
}
},
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "21.0.10+7-LTS",
"java.vendor": "Eclipse Adoptium",
"java.vendor.url": "https://adoptium.net/",
"java.version": "21.0.10",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "21.0.10+7-LTS",
"os.name": "Linux",
"os.version": "6.6.87.2-microsoft-standard-WSL2",
"user.language": "en",
"user.timezone": "GMT"
}
}
That looks like a bug, it’s trying to invoke database routing on an OSS version, where it isn’t supported. File a bug in GitHub on it.
