LT | An OTP Bug That Slept for 16 Years - Albert Schimpf | Code BEAM Europe 2025
Comments welcome! View the code-sync tag for more Code Sync talks!
LT | An OTP Bug That Slept for 16 Years - Albert Schimpf | Code BEAM Europe 2025
Comments welcome! View the code-sync tag for more Code Sync talks!
IMO this might not be a bug at all, but rather intentional Erlang design. The “fix” could actually be introducing unnecessary defensive programming that goes against Erlang’s philosophy of letting processes crash on invalid states, it is normal behaviour of erlang.
Erlang Philosophy Perspective
In Erlang, it’s often intentional and correct for functions to crash with bad inputs rather than return false. The philosophy is:
Crash fast on invalid inputs
Let supervisors handle errors
Don’t mask programming errors with defensive coding
When Crashing is Preferred
Crashing might be better if:
Improper lists indicate serious programming errors
The function should only handle proper data structures
The crash provides a clearer signal than silent false
Supervisors will restart the process appropriately