Less than 10 minutes after I pressed send, I stumbled over this: setStopsValidationAfterFirstError
public void setStopsValidationAfterFirstError(boolean yn) Sets according to yn whether this EOEditingContext stops validating after the first error is encountered, or continues for all objects (validation typically occurs during a save operation). The default is true. Setting it to false is useful if the delegate implements editingContextShouldPresentException to handle the presentation of aggregate exceptions. I've never seen that method before in my life. Of course it defaults to true. Setting it to false solves my problem. Nothing to see here. On 22 Dec 2025, at 12:44, Paul Hoadley <[email protected]> wrote: > I just need a quick sanity check. Say I have an object graph where A has > to-one relationships to B and C. Say both B and C are in a state that should > throw an exception from validateForSave(). What I think I am seeing is that > validateForSave() gets called on one of those first, say B, which throws an > exception and then C.validateForSave() is never called—all I see in the catch > block around saveChanges() is B's exception. And this isn't a case where B's > exception is wrapping C's in additionalExceptions: C.validateForSave() is not > called at all. > > Is this expected behaviour? This doesn't seem right. -- Paul Hoadley https://logicsquad.net/ https://www.linkedin.com/company/logic-squad/
