Assertions were a mistake. The story is always the same. Someone uses assertions to check for things that can never happen. It works as expected. Then someone else turns off assertions. Then things that cannot happen, happen, and the program thinks everything is OK.