LT | An OTP Bug That Slept for 16 Years - Albert Schimpf | Code BEAM Europe 2025

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!

3 Likes

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

code-sync

2 Likes