diff --git a/src/bacnet/basic/service/h_wpm.c b/src/bacnet/basic/service/h_wpm.c index 8a9a3eca..0653b260 100644 --- a/src/bacnet/basic/service/h_wpm.c +++ b/src/bacnet/basic/service/h_wpm.c @@ -92,6 +92,15 @@ static int write_property_multiple_decode(uint8_t *apdu, (long)wp_data->array_index); if (device_write_property) { if (device_write_property(wp_data) == false) { + /* Workaround BTL Specified Test 9.23.2.X5 */ + if ((wp_data->error_class == + ERROR_CLASS_PROPERTY) && + (wp_data->error_code == + ERROR_CODE_INVALID_DATA_TYPE)) { + wp_data->error_class = ERROR_CLASS_SERVICES; + wp_data->error_code = + ERROR_CODE_INVALID_TAG; + } return BACNET_STATUS_ERROR; } }