Configuring 'showErrorBox' and 'showFieldMsg' with hideFieldMsg for a better UI experienceSummaryThis mainly applies to variable editors within request items. Some customers may make changes/modify the variable editor after the request has been submitted as a part of their process flow. They can have client script which will be triggering the validation script. These validation scripts can have showErrorBox & showFieldMsg. The messages displayed by these validation scripts are not removed from the screen. They just keep on adding every time the validation happens, which is not a good UI experience. This behavior was however different in London & Madrid. In London & Madrid, the showErrorBox & showFieldMsg used to get cleared out. For more information on the behavior change, you can refer to PRB1373866 - g_form.showErrorBox & g_form.showFieldMsg work different in London/Madrid & New York on Catalog Client ScriptsReleaseNew York Patch 1 Hot Fix 1 New York Patch 1 Hot Fix 1aInstructionsSample script which used both showErrorBox & showFieldMsg without hideFieldMsg. The below script is triggered on change of field - nt_id function onChange(control, oldValue, newValue, isLoading) { if (isLoading || newValue == '') { return; } var ad_check=''; var vel_check=''; var emailid=g_form.getValue('Email_ID'); if(emailid==''){ var usr=new GlideRecord('sys_user'); usr.addQuery('user_name',newValue); usr.query(); if(usr.next()){ ad_check='True'; } var temp=''; var vel=new GlideRecord('user_admin'); vel.addQuery('user_id',newValue); vel.query(); if(vel.next()){ vel_check='True'; } } if(ad_check=='True'){ g_form.setValue('nt_id',''); g_form.showErrorBox('nt_id','ID already exists in AD'); } else{ g_form.showFieldMsg('nt_id','ID that you have choosen sounds unique in AD','info'); } var test=''; var test12=''; if(vel_check=='True'){ g_form.setValue('nt_id',''); g_form.showErrorBox('nt_id','ID already exists in LDAP'); }else{ g_form.showFieldMsg('nt_id','ID that you have choosen sounds unique in LDAP.','info'); }} This script will show the messages as: Now modifying the above script as below with the showErrorBox & showFieldMsg messages are shown as: function onChange(control, oldValue, newValue, isLoading) {if (isLoading || newValue == '') {return;}g_form.hideFieldMsg("nt_id");var ad_check='';var vel_check='';var emailid=g_form.getValue('Email_ID');if(emailid==''){var usr=new GlideRecord('sys_user');usr.addQuery('user_name',newValue);usr.query();if(usr.next()){ad_check='True';}var temp='';var vel=new GlideRecord('user_admin');vel.addQuery('user_id',newValue);vel.query();if(vel.next()){vel_check='True';}}if((ad_check=='True')&&(vel_check=='True')){g_form.setValue('nt_id','');g_form.hideFieldMsg("nt_id");g_form.showErrorBox('nt_id','NT ID already exists in AD');g_form.showErrorBox('nt_id','NT ID already exists in LDAP');}else{g_form.hideFieldMsg("nt_id");g_form.showFieldMsg('nt_id','NT ID that you have choosen sounds unique in AD','info');g_form.showFieldMsg('nt_id','NT ID that you have choosen sounds unique in LDAP.','info');}} Related LinksBelow is snapshot of the catalog variables that are used in the script.