Making sure users can continue editing the UI because something is wrong with validation and this is not reproducible in all machines (#1650)
JIRA: ZAPP-1661
diff --git a/src-electron/validation/validation.js b/src-electron/validation/validation.js
index fcad824..2751f5b 100644
--- a/src-electron/validation/validation.js
+++ b/src-electron/validation/validation.js
@@ -27,6 +27,7 @@
const queryEndpoint = require('../db/query-endpoint.js')
const types = require('../util/types.js')
const queryPackage = require('../db/query-package.js')
+const env = require('../util/env')
/**
* Main attribute validation function.
@@ -52,7 +53,26 @@
attributeRef,
clusterRef
)
+ // Null check for endpointAttribute
+ if (!endpointAttribute) {
+ env.logWarning(
+ `validateAttribute called with invalid parameters for endpointAttribute:\n
+ - endpointTypeId: ${endpointTypeId}\n
+ - attributeRef: ${attributeRef}\n
+ - clusterRef: ${clusterRef}`
+ )
+ return { defaultValue: ['Attribute not found in endpoint configuration'] }
+ }
+
let attribute = await queryZcl.selectAttributeById(db, attributeRef)
+ // Null check for attribute
+ if (!attribute) {
+ env.logWarning(
+ `validateAttribute called with invalid parameters for attribute:\n
+ - attributeRef: ${attributeRef}`
+ )
+ return { defaultValue: ['Attribute definition not found'] }
+ }
return validateSpecificAttribute(
endpointAttribute,
attribute,
@@ -118,6 +138,14 @@
db,
zapSessionId
) {
+ if (!endpointAttribute || !attribute) {
+ env.logWarning(
+ `validateSpecificAttribute called with invalid parameters:\n
+ - endpointAttribute: ${JSON.stringify(endpointAttribute)}\n
+ - attribute: ${JSON.stringify(attribute)}`
+ )
+ return { defaultValue: ['Missing attribute or endpoint configuration'] }
+ }
let defaultAttributeIssues = []
if (attribute.isNullable && endpointAttribute.defaultValue == null) {
return { defaultValue: defaultAttributeIssues }