If a handler produces an error, cleanup code doesn’t get to run and leaves gbd-mi.el in a corrupted state (in terms of communication buffer). So other handlers can’t parse the message sent from gdb anymore.