diff --git a/src/Services/ParameterService.cpp b/src/Services/ParameterService.cpp
index 90e30a8d07516ac3316287af56001863061c0efe..84acc6aa65b1e6ff652ab6cfa9b7429d53ee6aba 100644
--- a/src/Services/ParameterService.cpp
+++ b/src/Services/ParameterService.cpp
@@ -37,12 +37,15 @@ ParameterService::ParameterService() {
 void ParameterService::reportParameterIds(Message paramIds) {
 	Message reqParam(20, 2, Message::TM, 1);    // empty TM[20, 2] parameter report message
 
-    // assertion: correct message, packet and service type (at failure throws an
-    // InternalError::UnacceptablePacket)
-	ErrorHandler::assertInternal(paramIds.packetType == Message::TC
-	&& paramIds.messageType == 1
-	&& paramIds.serviceType == 20,
-	ErrorHandler::InternalErrorType::UnacceptablePacket);
+	// assertion: correct message, packet and service type (at failure throws an
+	// InternalError::UnacceptablePacket)
+	ErrorHandler::assertRequest(paramIds.packetType == Message::TC, paramIds,
+	                            ErrorHandler::AcceptanceErrorType::UnacceptableMessage);
+	ErrorHandler::assertRequest(paramIds.messageType == 1, paramIds,
+	                            ErrorHandler::AcceptanceErrorType::UnacceptableMessage);
+	ErrorHandler::assertRequest(paramIds.serviceType == 20, paramIds,
+	                            ErrorHandler::AcceptanceErrorType::UnacceptableMessage);
+
 	uint16_t ids = paramIds.readUint16();
 	reqParam.appendUint16(numOfValidIds(paramIds));   // include the number of valid IDs
 
@@ -52,10 +55,10 @@ void ParameterService::reportParameterIds(Message paramIds) {
 		if (paramsList.find(currId) != paramsList.end()) {
 			reqParam.appendUint16(currId);
 			reqParam.appendUint32(paramsList[currId].settingData);
-		}
-
-		else {
-			continue;  // generate failure of execution notification (todo) for ST[06] & ignore
+		} else {
+			ErrorHandler::reportError(paramIds,
+				ErrorHandler::ExecutionStartErrorType::UnknownExecutionStartError);
+			continue;  // generate failed start of execution notification & ignore
 		}
 	}
 
@@ -66,10 +69,14 @@ void ParameterService::setParameterIds(Message newParamValues) {
 
 	// assertion: correct message, packet and service type (at failure throws an
 	// InternalError::UnacceptablePacket which gets logged)
-	ErrorHandler::assertInternal(newParamValues.packetType == Message::TC
-	                             && newParamValues.messageType == 1
-	                             && newParamValues.serviceType == 20,
-	                             ErrorHandler::InternalErrorType::UnacceptablePacket);
+
+	ErrorHandler::assertRequest(newParamValues.packetType == Message::TC, newParamValues,
+		ErrorHandler::AcceptanceErrorType::UnacceptableMessage);
+	ErrorHandler::assertRequest(newParamValues.messageType == 3, newParamValues,
+		ErrorHandler::AcceptanceErrorType::UnacceptableMessage);
+	ErrorHandler::assertRequest(newParamValues.serviceType == 20, newParamValues,
+		ErrorHandler::AcceptanceErrorType::UnacceptableMessage);
+
 	uint16_t ids = newParamValues.readUint16();  //get number of ID's
 
 	for (int i = 0; i < ids; i++) {
@@ -77,10 +84,10 @@ void ParameterService::setParameterIds(Message newParamValues) {
 
 		if (paramsList.find(currId) != paramsList.end()) {
 			paramsList[currId].settingData = newParamValues.readUint32();
-		}
-
-		else {
-			continue;   // generate failure of execution notification (todo) for ST[06] & ignore
+		} else {
+			ErrorHandler::reportError(newParamValues,
+				ErrorHandler::ExecutionStartErrorType::UnknownExecutionStartError);
+			continue;   // generate failed start of execution notification & ignore
 		}
 	}
 }