For non-error tuples Exception.normalize/3 returns the original payload, which may be anything. Some payloads such as tuples don't implement the String.Chars protocol. So calling to_string/1 will fail. In such cases we fall back to inspect/1.
I made a few updates to the live.exs script to reproduce this problem. You can run elixir live.exs and click the button called «GenServer timeout». This will cause an error that should be recorded by the error tracker.
If you revert the changes that I made and try this same button you will se that the error payload cannot be converted to string and detaches the ErrorTracker telemetry handler.
For non-error tuples
Exception.normalize/3
returns the original payload, which may be anything. Some payloads such as tuples don't implement theString.Chars
protocol. So callingto_string/1
will fail. In such cases we fall back toinspect/1
.I made a few updates to the
live.exs
script to reproduce this problem. You can runelixir live.exs
and click the button called «GenServer timeout». This will cause an error that should be recorded by the error tracker.If you revert the changes that I made and try this same button you will se that the error payload cannot be converted to string and detaches the ErrorTracker telemetry handler.
Closes #109