- }
- if (!rejectCallback) {
- // Error
- throw new OCPPError(
- ErrorType.INTERNAL_ERROR,
- `Error response for unknown message id ${messageId}`,
- requestCommandName
+ if (!responseCallback) {
+ // Error
+ throw new OCPPError(
+ ErrorType.INTERNAL_ERROR,
+ `Response for unknown message id ${messageId}`,
+ null,
+ commandPayload
+ );
+ }
+ responseCallback(commandPayload, requestPayload);
+ break;
+ // Error Message
+ case MessageType.CALL_ERROR_MESSAGE:
+ [, , errorType, errorMessage, errorDetails] = request as ErrorResponse;
+ cachedRequest = this.requests.get(messageId);
+ if (Utils.isIterable(cachedRequest)) {
+ [, rejectCallback, requestCommandName] = cachedRequest;
+ } else {
+ throw new OCPPError(
+ ErrorType.PROTOCOL_ERROR,
+ `Cached request for message id ${messageId} error response is not iterable`,
+ null,
+ cachedRequest as unknown as JsonType
+ );
+ }
+ logger.debug(
+ `${this.logPrefix()} << Command '${
+ requestCommandName ?? ''
+ }' received error payload: ${JSON.stringify(request)}`