Configuration Compliance - Qualys policy imports completing successfully without pulling in dataIssue Both Qualys PC Policies and Qualys PC Policies Details are completed successfully with 0 imports/updates. ReleaseVR 14.0.6Qualys 12.1.1CauseIn the system logs, we can see error: com.glide.script.RhinoEcmaError: Cannot read property "length" from undefinedsys_script_include.48dbe0ce0b333200cbf38ee337673ada.script : Line(200) column(0)ResolutionThis is occurring due to missing null-check for the technologies list in the _transformControl method of sys_script_include_48dbe0ce0b333200cbf38ee337673ada: line 198 And this is a known issue documented in PRB1544637 and it is fixed in the latest 12.4.1 version of Qualys Integration for Security Operations plugin. https://support.servicenow.com/problem.do?sys_id=1c6239041b9485902c2fc8031d4bcb4cIf you do not want to upgrade, please apply the workaround below: To Fix this issue pls add the following line of code before line no. 198 in PolicyListStream script include(/nav_to.do?uri=%2Fsys_script_include.do%3Fsys_id%3D48dbe0ce0b333200cbf38ee337673ada%26sysparm_domain%3Dnull%26sysparm_domain_scope%3Dnull): if(!gs.nil(technologies)){ After making the changes to _transformControl function must look like the below snippet: *** code snippet *** _transformControl: function(controlMap){ var controlGr = new GlideRecord("sn_vulc_test"); controlGr.addQuery("source", this._SOURCE); controlGr.addQuery("source_id", controlMap.ID); controlGr.query(); var exists = controlGr.next(); if(!exists) controlGr = new GlideRecord("sn_vulc_test"); controlGr.setValue("source_id", controlMap.ID); controlGr.setValue("source_id_int", controlMap.ID); controlGr.setValue("short_description", controlMap.STATEMENT.trim()); controlGr.setValue("source_criticality", controlMap.CRITICALITY.trim()); var crit = new sn_vulc.CriticalityMapping().mapControlCriticality(this._SOURCE, controlMap.CRITICALITY.trim()); if (!gs.nil(crit)) controlGr.setValue("criticality", crit); controlGr.setValue("source", this._SOURCE); var technologies = controlMap.TECHNOLOGY_LIST; var controlTechSysIds = []; //Fix suggested : adding below check to validate if the technologies is not empty before processing it. if (!gs.nil(technologies)) { for (var i = 0; i < technologies.length; i++) controlTechSysIds.push(this._technologySysIds[technologies[i].ID]); controlGr.setValue("technologies", controlTechSysIds.join(",")); } if(!exists){ if(!controlGr.insert()) gs.warn("failed to insert a new control with source_id=" + controlMap.ID); } else{ if(!controlGr.update()) gs.warn("failed to update control with sys_id=" + controlGr.getUniqueValue() + " source_id=" + controlMap.ID); } return controlGr; },