Several popular Elixir libraries use gen_statem internally, given it's very useful for managing data over persistent connections. However Elixir's default translations for Erlang log messages don't capture termination reports from gen_statem. As a result, gen_statem terminations leave no discernible errors for users.
It's really difficult for users unfamiliar with gen_statem to identify this issue, as they're unlikely to independently identify the problem and resolution, without help from someone already aware of this behavior.
The standing position is briefly discussed
here, but I think it's worth reconsidering. It wouldn't take too much additional code to translate gen_statem exits, and it'd save lots of potential headache.
The current alternative solutions are to:
- Set "handle_sasl_reports: true" in logger's config (includes lots of extraneous stuff).
As an aside, this issue actually came up on
TJ DeVries'
Twitch stream.