1 and 2 are the same thing. They're syntactical errors in proton's own input protocol. Your 3 is a semantics violation and thus gets it's own error code (2 in my spec)