Use a separate variable to return parse_error vs err which is also used for io.EOF detection. In the new behavior, a 'complete' parsing can still return an error.