Should we perhaps throw a more descriptive error message in this case? Something like `checkState`?