TLDR: root cause is working with dynamic and weakly typed languages and poorly documented and maintained spaghetti code