Sending dashboard subscription e-mail fails

Hi all,

At the Dutch Hockey Federation we're extensive users of metabase since 2019 and we're very happy with the software and the tools it gives us to get data to our users.
We just have one Pulse configured and it stopped working a while ago. I converted the report to a Dashboard Subscription, but still get a Send failed when I attempt to send the results. The e-mail config in admin is fine and correctly sends out a test mail.
It looks like there's something not working right inside Apache BATIK:

Hi @PaulvanKeep
Without seeing the full stacktrace (not a screenshot) from Admin > Troubleshooting > Logs, then it's difficult to know, but likely a bad version of Java or some other incomplete Java configuration.
Have a look here: Dashboard Subscriptions Error Rending Card

Thanks for the quick feedback @flamber.
Here's our server config:
{
"system-info": {
"file.encoding": "UTF-8",
"java.runtime.name": "OpenJDK Runtime Environment",
"java.runtime.version": "1.8.0_322-8u322-b06-1~deb9u1-b06",
"java.vendor": "Oracle Corporation",
"java.vendor.url": "http://java.oracle.com/",
"java.version": "1.8.0_322",
"java.vm.name": "OpenJDK 64-Bit Server VM",
"java.vm.version": "25.322-b06",
"os.name": "Linux",
"os.version": "4.19.0-0.bpo.17-amd64",
"user.language": "en",
"user.timezone": "Europe/Amsterdam"
},
"metabase-info": {
"databases": [
"mysql",
"postgres"
],
"hosting-env": "unknown",
"application-database": "postgres",
"application-database-details": {
"database": {
"name": "PostgreSQL",
"version": "11.13 (Debian 11.13-1.pgdg90+1)"
},
"jdbc-driver": {
"name": "PostgreSQL JDBC Driver",
"version": "42.2.23"
}
},
"run-mode": "prod",
"version": {
"tag": "v0.42.3",
"date": "2022-03-23",
"branch": "release-x.42.x",
"hash": "33fb268"
},
"settings": {
"report-timezone": "Europe/Brussels"
}
}
}

Unfortunately I can't seem to access the Logs from the metabase admin console. I've never been able to load them.

Here's the full stack trace:
{"via":[{"type":"java.lang.NoClassDefFoundError","message":"Could not initialize class org.apache.batik.bridge.CursorManager","at":["org.apache.batik.bridge.BridgeContext","","BridgeContext.java",1162]}],"trace":[["org.apache.batik.bridge.BridgeContext","","BridgeContext.java",1162],["org.apache.batik.bridge.BridgeContext","","BridgeContext.java",292],["org.apache.batik.transcoder.SVGAbstractTranscoder","createBridgeContext","SVGAbstractTranscoder.java",338],["org.apache.batik.transcoder.SVGAbstractTranscoder","createBridgeContext","SVGAbstractTranscoder.java",314],["org.apache.batik.transcoder.SVGAbstractTranscoder","transcode","SVGAbstractTranscoder.java",196],["org.apache.batik.transcoder.image.ImageTranscoder","transcode","ImageTranscoder.java",92],["org.apache.batik.transcoder.XMLAbstractTranscoder","transcode","XMLAbstractTranscoder.java",142],["org.apache.batik.transcoder.SVGAbstractTranscoder","transcode","SVGAbstractTranscoder.java",158],["metabase.pulse.render.js_svg$render_svg","invokeStatic","js_svg.clj",97],["metabase.pulse.render.js_svg$render_svg","invoke","js_svg.clj",87],["metabase.pulse.render.js_svg$svg_string__GT_bytes","invokeStatic","js_svg.clj",101],["metabase.pulse.render.js_svg$svg_string__GT_bytes","invoke","js_svg.clj",100],["metabase.pulse.render.js_svg$icon","invokeStatic","js_svg.clj",228],["metabase.pulse.render.js_svg$icon","invoke","js_svg.clj",222],["metabase.email.messages$icon_bundle","invokeStatic","messages.clj",79],["metabase.email.messages$icon_bundle","invoke","messages.clj",76],["metabase.email.messages$render_message_body","invokeStatic","messages.clj",463],["metabase.email.messages$render_message_body","invoke","messages.clj",456],["metabase.email.messages$render_pulse_email","invokeStatic","messages.clj",485],["metabase.email.messages$render_pulse_email","invoke","messages.clj",482],["metabase.pulse$fn__74941","invokeStatic","pulse.clj",293],["metabase.pulse$fn__74941","invoke","pulse.clj",282],["clojure.lang.MultiFn","invoke","MultiFn.java",239],["metabase.pulse$results__GT_notifications$iter__74971__74975$fn__74976","invoke","pulse.clj",345],["clojure.lang.LazySeq","sval","LazySeq.java",42],["clojure.lang.LazySeq","seq","LazySeq.java",51],["clojure.lang.RT","seq","RT.java",535],["clojure.core$seq__5419","invokeStatic","core.clj",139],["clojure.core$seq__5419","invoke","core.clj",139],["metabase.pulse$send_notifications_BANG_","invokeStatic","pulse.clj",387],["metabase.pulse$send_notifications_BANG_","invoke","pulse.clj",386],["metabase.pulse$send_pulse_BANG_","invokeStatic","pulse.clj",415],["metabase.pulse$send_pulse_BANG_","doInvoke","pulse.clj",395],["clojure.lang.RestFn","invoke","RestFn.java",410],["metabase.api.pulse$fn__75935","invokeStatic","pulse.clj",211],["metabase.api.pulse$fn__75935","invoke","pulse.clj",197],["compojure.core$wrap_response$fn__32273","invoke","core.clj",160],["compojure.core$wrap_route_middleware$fn__32257","invoke","core.clj",132],["compojure.core$wrap_route_info$fn__32262","invoke","core.clj",139],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",151],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",153],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",153],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",153],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",152],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285","invoke","core.clj",200],["metabase.server.middleware.auth$enforce_authentication$fn__65369","invoke","auth.clj",14],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285","invoke","core.clj",200],["compojure.core$make_context$handler__32313","invoke","core.clj",289],["compojure.core$make_context$fn__32317","invoke","core.clj",299],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$make_context$fn__32317","invoke","core.clj",300],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["metabase.api.routes$fn__76493$fn__76496","invoke","routes.clj",56],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285","invoke","core.clj",200],["clojure.lang.AFn","applyToHelper","AFn.java",160],["clojure.lang.AFn","applyTo","AFn.java",144],["clojure.core$apply","invokeStatic","core.clj",667],["clojure.core$apply","invoke","core.clj",662],["metabase.server.routes$fn__76638$fn__76639","doInvoke","routes.clj",57],["clojure.lang.RestFn","invoke","RestFn.java",436],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285","invoke","core.clj",200],["compojure.core$make_context$handler__32313","invoke","core.clj",289],["compojure.core$make_context$fn__32317","invoke","core.clj",299],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",153],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",153],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["compojure.core$wrap_route_matches$fn__32266","invoke","core.clj",153],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285$f__32286$respond_SINGLEQUOTE___32287","invoke","core.clj",197],["metabase.server.routes$fn__76626$fn__76628","invoke","routes.clj",41],["compojure.core$routes$fn__32285$f__32286","invoke","core.clj",198],["compojure.core$routes$fn__32285","invoke","core.clj",200],["metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__73621","invoke","exceptions.clj",98],["metabase.server.middleware.exceptions$catch_api_exceptions$fn__73618","invoke","exceptions.clj",86],["metabase.server.middleware.log$log_api_call$fn__77107$fn__77108$fn__77109","invoke","log.clj",209],["metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info","invokeStatic","diagnostic.clj",15],["metabase.driver.sql_jdbc.execute.diagnostic$do_with_diagnostic_info","invoke","diagnostic.clj",9],["metabase.server.middleware.log$log_api_call$fn__77107$fn__77108","invoke","log.clj",201],["toucan.db$_do_with_call_counting","invokeStatic","db.clj",216],["toucan.db$_do_with_call_counting","invoke","db.clj",209],["metabase.server.middleware.log$log_api_call$fn__77107","invoke","log.clj",200],["metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__80460","invoke","browser_cookie.clj",38],["metabase.server.middleware.security$add_security_headers$fn__55229","invoke","security.clj",148],["metabase.server.middleware.json$wrap_json_body$fn__79615","invoke","json.clj",62],["metabase.server.middleware.json$wrap_streamed_json_response$fn__79633","invoke","json.clj",98],["metabase.server.middleware.offset_paging$handle_paging$fn__55253","invoke","offset_paging.clj",42],["ring.middleware.keyword_params$wrap_keyword_params$fn__80727","invoke","keyword_params.clj",55],["ring.middleware.params$wrap_params$fn__80743","invoke","params.clj",69],["metabase.server.middleware.misc$maybe_set_site_url$fn__34379","invoke","misc.clj",59],["metabase.server.middleware.session$bind_current_user$fn__45722$fn__45723","invoke","session.clj",262],["metabase.server.middleware.session$do_with_current_user","invokeStatic","session.clj",243],["metabase.server.middleware.session$do_with_current_user","invoke","session.clj",235],["metabase.server.middleware.session$bind_current_user$fn__45722","invoke","session.clj",261],["metabase.server.middleware.session$wrap_current_user_info$fn__45709","invoke","session.clj",221],["metabase.server.middleware.session$wrap_session_id$fn__45695","invoke","session.clj",167],["metabase.server.middleware.auth$wrap_api_key$fn__65377","invoke","auth.clj",27],["ring.middleware.cookies$wrap_cookies$fn__80647","invoke","cookies.clj",216],["metabase.server.middleware.misc$add_content_type$fn__34362","invoke","misc.clj",27],["metabase.server.middleware.misc$disable_streaming_buffering$fn__34387","invoke","misc.clj",76],["ring.middleware.gzip$wrap_gzip$fn__80689","invoke","gzip.clj",86],["metabase.server.middleware.misc$bind_request$fn__34390","invoke","misc.clj",93],["metabase.server.middleware.ssl$redirect_to_https_middleware$fn__80476","invoke","ssl.clj",48],["metabase.server$async_proxy_handler$fn__76880","invoke","server.clj",73],["metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a","handle",null,-1],["org.eclipse.jetty.server.handler.HandlerWrapper","handle","HandlerWrapper.java",127],["org.eclipse.jetty.server.Server","handle","Server.java",516],["org.eclipse.jetty.server.HttpChannel","lambda$handle$1","HttpChannel.java",388],["org.eclipse.jetty.server.HttpChannel","dispatch","HttpChannel.java",633],["org.eclipse.jetty.server.HttpChannel","handle","HttpChannel.java",380],["org.eclipse.jetty.server.HttpConnection","onFillable","HttpConnection.java",277],["org.eclipse.jetty.io.AbstractConnection$ReadCallback","succeeded","AbstractConnection.java",311],["org.eclipse.jetty.io.FillInterest","fillable","FillInterest.java",105],["org.eclipse.jetty.io.ChannelEndPoint$1","run","ChannelEndPoint.java",104],["org.eclipse.jetty.util.thread.strategy.EatWhatYouKill","runTask","EatWhatYouKill.java",338],["org.eclipse.jetty.util.thread.strategy.EatWhatYouKill","doProduce","EatWhatYouKill.java",315],["org.eclipse.jetty.util.thread.strategy.EatWhatYouKill","tryProduce","EatWhatYouKill.java",173],["org.eclipse.jetty.util.thread.strategy.EatWhatYouKill","run","EatWhatYouKill.java",131],["org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread","run","ReservedThreadExecutor.java",386],["org.eclipse.jetty.util.thread.QueuedThreadPool","runJob","QueuedThreadPool.java",883],["org.eclipse.jetty.util.thread.QueuedThreadPool$Runner","run","QueuedThreadPool.java",1034],["java.lang.Thread","run","Thread.java",750]],"cause":"Could not initialize class org.apache.batik.bridge.CursorManager","message":"Could not initialize class org.apache.batik.bridge.CursorManager"}

@PaulvanKeep Upgrade to Java 11:
https://www.metabase.com/docs/latest/operations-guide/java-versions.html

Will do

That did the trick. We upgraded to java 12.
Thanks for the help.

@PaulvanKeep You should absolutely not be using Java 12, which has been EOL of a long time:
https://endoflife.date/java

I'll have a word with my hosting provider. Thanks for the heads up