From d1cd3fd58a31c27b63a8215fa2b3147636e7bdf3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Mon, 16 Mar 2026 15:57:48 +0100 Subject: [PATCH] fix(ocpp): replace unsafe messagePayload as OCPPError casts with instanceof 6 casts in sendMessage error handling replaced with proper instanceof OCPPError guard per existing codebase pattern. --- .../ocpp/OCPPRequestService.ts | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/charging-station/ocpp/OCPPRequestService.ts b/src/charging-station/ocpp/OCPPRequestService.ts index b9e09b18..174b6a05 100644 --- a/src/charging-station/ocpp/OCPPRequestService.ts +++ b/src/charging-station/ocpp/OCPPRequestService.ts @@ -275,13 +275,20 @@ export abstract class OCPPRequestService { // Error Message case MessageType.CALL_ERROR_MESSAGE: // Build Error Message + if (!(messagePayload instanceof OCPPError)) { + throw new OCPPError( + ErrorType.INTERNAL_ERROR, + `Expected OCPPError instance for CALL_ERROR_MESSAGE, got ${typeof messagePayload}`, + commandName + ) + } messageToSend = JSON.stringify([ messageType, messageId, - (messagePayload as OCPPError).code, - (messagePayload as OCPPError).message, - (messagePayload as OCPPError).details ?? { - command: (messagePayload as OCPPError).command, + messagePayload.code, + messagePayload.message, + messagePayload.details ?? { + command: messagePayload.command, }, ] satisfies ErrorResponse) break @@ -441,7 +448,7 @@ export abstract class OCPPRequestService { params.skipBufferingOnError === false ? '' : 'non ' }buffered message id '${messageId}' with content '${messageToSend}'`, commandName, - (messagePayload as OCPPError).details + messagePayload instanceof OCPPError ? messagePayload.details : undefined ) ) }, OCPPConstants.OCPP_WEBSOCKET_TIMEOUT) @@ -492,7 +499,7 @@ export abstract class OCPPRequestService { params.skipBufferingOnError === false ? '' : 'non ' }buffered message id '${messageId}' with content '${messageToSend}'`, commandName, - (messagePayload as OCPPError).details + messagePayload instanceof OCPPError ? messagePayload.details : undefined ) ) } -- 2.53.0