I agree, better error messages should be necessary here.
As for whether to use `assert` in the first place?  Its unclear, we are dealing with safety critical parts of code; I feel like anything less might be a risk.