Internal server error with LiveDashboard in prod

Hello all!
I just started playing with LiveDashboard in an existing Phoenix project I have. In dev it works flawlessly but when I run it in production I get a status code 500 when trying to access it.

This is what I get in my log:

Request: GET /dashboard/home
** (exit) an exception was raised:
 ** (Protocol.UndefinedError) protocol Phoenix.HTML.Safe not implemented for %{errors: %{detail: "Internal Server Error"}} of type Map. This protocol is implemented for the following type(s): Atom, BitString, Date, DateTime, Decimal, Float, Integer, List, Money, NaiveDateTime, Phoenix.HTML.Form, Phoenix.LiveComponent.CID, Phoenix.LiveView.Component, Phoenix.LiveView.Comprehension, Phoenix.LiveView.JS, Phoenix.LiveView.Rendered, Time, Tuple
 (phoenix_html 3.2.0) lib/phoenix_html/safe.ex:1: Phoenix.HTML.Safe.impl_for!/1
 (phoenix_html 3.2.0) lib/phoenix_html/safe.ex:15: Phoenix.HTML.Safe.to_iodata/1
 (phoenix 1.6.11) lib/phoenix/controller.ex:772: Phoenix.Controller.render_and_send/4
 (phoenix 1.6.11) lib/phoenix/endpoint/render_errors.ex:78: Phoenix.Endpoint.RenderErrors.instrument_render_and_send/5
 (phoenix 1.6.11) lib/phoenix/endpoint/render_errors.ex:64: Phoenix.Endpoint.RenderErrors.__catch__/5
 (phoenix 1.6.11) lib/phoenix/endpoint/cowboy2_handler.ex:54: Phoenix.Endpoint.Cowboy2Handler.init/4
 (cowboy 2.9.0) /opt/app/deps/cowboy/src/cowboy_handler.erl:37: :cowboy_handler.execute/2
 (cowboy 2.9.0) /opt/app/deps/cowboy/src/cowboy_stream_h.erl:306: :cowboy_stream_h.execute/3

I googled the issue but it seems that it’s been smooth sail for everybody, I couldn’t find anyone with the same issue. If it matters, I’m running my project on Google Cloud Run, so it’s dockerized.

Thank you!

the error stack seems to be a follow up error to 500 response, you should check what is causing an internal server error in the first place

1 Like

Hi! Any suggestion on where to start?

My application is just API and I have a very limited knowledge of the web portion of Phoenix and even less so of LiveView. Since nothing in that stack is my code I thought perhaps it would be obvious to someone if this looks like a configuration issue.

not sure if this is default or your api trying to return %{errors: %{detail: "Internal Server Error"}} it could be a good start to check if you are trying to respond with this somewhere i suppose

1 Like

The results of my endpoints don’t have this format… if it had, I imagine it would be an issue that would manifest in dev as well, right? Anyways, thanks for the insight!