'An AMP box was received that answered a command previously sent with
L{callRemote}, with an error.
@param box: an L{AmpBox} with a value for its L{ERROR}, L{ERROR_CODE},
and L{ERROR_DESCRIPTION} keys.'

def _errorReceived(self, box):

    question = self._outstandingRequests.pop(box[ERROR])
    question.addErrback(self.unhandledError)
    errorCode = box[ERROR_CODE]
    description = box[ERROR_DESCRIPTION]
    if isinstance(description, bytes):
        description = description.decode('utf-8', 'replace')
    if (errorCode in PROTOCOL_ERRORS):
        exc = PROTOCOL_ERRORS[errorCode](errorCode, description)
    else:
        exc = RemoteAmpError(errorCode, description)
    question.errback(Failure(exc))
