Can't add a new user: No implementation of method: :render error

I have a Beanstalk-hosted instance of Metabase, and whenever I try to add a new user I see this error:

Here is what shows up in the logs:

{:message "No implementation of method: :render of protocol: #'stencil.ast/ASTNode found for class: nil",
:type java.lang.IllegalArgumentException,
:stacktrace
("clojure.core$_cache_protocol_fn.invokeStatic(core_deftype.clj:583)"
"clojure.core$_cache_protocol_fn.invoke(core_deftype.clj:575)"
"stencil.ast$fn__30303$G__30298__30312.invoke(ast.clj:19)"
"stencil.core$render.invokeStatic(core.clj:80)"
"stencil.core$render.invoke(core.clj:74)"
"stencil.core$render_file.invokeStatic(core.clj:87)"
"stencil.core$render_file.invoke(core.clj:83)"
"--> email.messages$send_new_user_email_BANG_.invokeStatic(messages.clj:67)"
"email.messages$send_new_user_email_BANG_.invoke(messages.clj:63)"
"models.user$send_welcome_email_BANG_.invokeStatic(user.clj:176)"
"models.user$send_welcome_email_BANG_.invoke(user.clj:172)"
"models.user$fn__32292$create_and_invite_user_BANG___32297$fn__32298.invoke(user.clj:208)"
"models.user$fn__32292$create_and_invite_user_BANG___32297.invoke(user.clj:203)"
"api.user$fn__63972$fn__63975.invoke(user.clj:101)"
"api.user$fn__63972.invokeStatic(user.clj:100)"
"api.user$fn__63972.invoke(user.clj:89)"
"middleware.auth$enforce_authentication$fn__64360.invoke(auth.clj:14)"
"routes$fn__65737$fn__65738.doInvoke(routes.clj:56)"
"middleware.exceptions$catch_uncaught_exceptions$fn__64459.invoke(exceptions.clj:104)"
"middleware.exceptions$catch_api_exceptions$fn__64456.invoke(exceptions.clj:92)"
"middleware.log$log_api_call$fn__66111$fn__66112.invoke(log.clj:170)"
"middleware.log$log_api_call$fn__66111.invoke(log.clj:164)"
"middleware.security$add_security_headers$fn__64422.invoke(security.clj:122)"
"middleware.json$wrap_json_body$fn__65816.invoke(json.clj:61)"
"middleware.json$wrap_streamed_json_response$fn__65834.invoke(json.clj:97)"
"middleware.session$bind_current_user$fn__60984$fn__60985.invoke(session.clj:209)"
"middleware.session$do_with_current_user.invokeStatic(session.clj:184)"
"middleware.session$do_with_current_user.invoke(session.clj:177)"
"middleware.session$bind_current_user$fn__60984.invoke(session.clj:208)"
"middleware.session$wrap_current_user_id$fn__60969.invoke(session.clj:161)"
"middleware.session$wrap_session_id$fn__60954.invoke(session.clj:123)"
"middleware.auth$wrap_api_key$fn__64368.invoke(auth.clj:27)"
"middleware.misc$maybe_set_site_url$fn__66138.invoke(misc.clj:56)"
"middleware.misc$bind_user_locale$fn__66141.invoke(misc.clj:72)"
"middleware.misc$add_content_type$fn__66126.invoke(misc.clj:28)"
"middleware.misc$disable_streaming_buffering$fn__66149.invoke(misc.clj:87)")}

Diagnostic Info

{
  "browser-info": {
    "language": "en-US",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.5+10",
    "java.vendor": "AdoptOpenJDK",
    "java.vendor.url": "https://adoptopenjdk.net/",
    "java.version": "11.0.5",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.5+10",
    "os.name": "Linux",
    "os.version": "4.14.152-98.182.amzn1.x86_64",
    "user.language": "en",
    "user.timezone": "GMT"
  },
  "metabase-info": {
    "databases": [
      "postgres",
      "h2"
    ],
    "hosting-env": "elastic-beanstalk",
    "application-database": "postgres",
    "run-mode": "prod",
    "version": {
      "date": "2019-12-13",
      "tag": "v0.33.7.1",
      "branch": "release-0.33.x",
      "hash": "d2dda64"
    },
    "settings": {
      "report-timezone": "US/Pacific"
    }
  }
}

Any help would be greatly appreciated.

The same error is happening when trying to sent a pulse email. It looks like there is something wrong with the classpath.

Hi @SirWellington
Thank you for reporting. This is very likely because of how 0.33.7.1 was created, since it doesn’t include source code (hence the missing class paths), to try to hide a vulnerability with Google Auth until people had the time to upgrade.
I’ve created an issue for this - if you don’t use Google Auth, then I would downgrade to 0.33.6 until there’s a new release - if you are using Google Auth, then stay on 0.33.7.1
https://github.com/metabase/metabase/issues/11525

1 Like

Hi @flamber

It’s not often that you get someone on a forum that can so quickly identify the issue and provide a solution. I rolled back to v0.33.6 as suggested and everything is working fine again.
Thank you again for helping to solve my issue. :heart:

Cheers!
Wellington

1 Like

I had the same problem in 33.7:

No implementation of method: :render of protocol: #'stencil.ast/ASTNode found for class: nil

I will roll back to 33.6

@gatalec Version 0.33.7 was a completely broken build and should not be used at all. That’s why 0.33.7.1 was released a couple of hours later, but sadly with a couple of issues too. I would expect a new release very soon.
Version 0.33.7.3 has been released - please upgrade:
https://github.com/metabase/metabase/releases/tag/v0.33.7.3

I download the jar file ,and replaced the old one, but when I run ,it’s still the old version

 Starting Metabase version v0.33.7.1 (d2dda64 release-0.33.x) ...

@springss You should probably have created a different topic, since this is unrelated.
Make sure that your browser doesn’t have a cache.
And validate the SHA256 checksum of the downloaded file.