When an error occurs, it marks the offending node with an annotation and continues checking, allowing the detection of multiple errors at once and printing the structure after validation. (In the case of circular references, it breaks the loop at the circular reference to allow the graph to print correctly.)