Validation is by default performed in all these situations. Have you overridden, say, validateForInsert:, and not invoked the superclass's implementation?