Asserts are a double-edged sword. One should only use asserts for code bugs, never for data. Data should be validated at load/receive time, before inserted into runtime data structures. Error handling should not be in the low level processing/transform code.
Arguably, Go doesn't have asserts because, well, Pike doesn't like them 🥲