schliemannw
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!
Most Liked
darnahsan
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
darnahsan
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








