The short answer is that any error can cause this behaviour in any piece of code. Parsers of just about any language often stop working after encountering a syntax error. It is pretty common for Perl to produce 'fake' errors afer a real one is encountered. This is because parsers rely on the programmer obeying the rules of the language to be able to continue parsing - it is just about impossible to write a parser that can figure out what the correct syntax should have been in order to carry on parsing correctly after the parsing error. It is true that the extra challenge of Moo might make it harder to see why such a fake error happened - it is probably because Moo forces an extra language layer into play. But it is better to presume that fake errors will appear in general after any real error and not worry about the particular circumstances.