Protocol String.Chars not implemented when rendering a partial template

I followed this nice post to set rendering of shared partials across Phoenix application up. Now I must be doing something obviously erroneous because whenever I try to render any of the shared templates I get

protocol String.Chars not implemented for {:safe, ["<span>test</span>\n"]} of type Tuple

The template in question is a minimalistic


testing.html.eex file. The rendering function follows the pattern from the above article and looks as follows:

def render_shared(template, assigns \\ []) do
    render(XmodeWeb.IconsView, "#{template}.html", assigns)

The only difference is the automatic “.html” but removing it doesn’t change anything. Would be grateful for pointing me in the right direction.

The error would indicate that you’re trying to do regular Elixir string interpolation somewhere. Can you supply the full stacktrace?

That’s in the new.html.slim… checking out. Right, removing the string interpolation helped getting rid of the error - thanks a lot!