Grid Canvas Throwing "Error com.glide.ui.ServletErrorListener Message null: no thrown error" ErrorDescriptionProblem:Hundreds of "null: no thrown error" errors are being generated in the system logs each day. The errors are generated when certain dashboards are opened. Localhost logs show a "DashboardThumbnailFactory" error Steps to Reproduce To see list of errors for today:https://__INSTANCE__.service-now.com/syslog_list.do?sysparm_query=sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()%5Emessage%3Dnull:%20no%20thrown%20error How to Identify Broken Records 1. Navigate to: https://<instance>.service-now.com/sys_grid_canvas_list.do?sysparm_query=legacy_pageISNOTEMPTY 2. This query returns all sys_grid_canvas records where legacy_page has a value 3. Sort by the Portal Page column 4. Records that show "(empty)" despite appearing in this filtered list are the broken ones — they have a sys_id stored in legacy_page, but the referenced sys_portal_page no longer exists Note: Not all "(empty)" Portal Page values are broken. In the unfiltered list, records with a truly empty legacy_page (<legacy_page/>) are normal. Only records that have a sys_id pointing to a non-existent portal page (<legacy_page display_value="">abc123...</legacy_page>) are problematic.Workaround Run the following script in Scripts - Background (/sys.scripts.do) to find and clear all broken legacy_page references: var invalidRecords = []; var gc = new GlideRecord('sys_grid_canvas'); gc.addNotNullQuery('legacy_page'); gc.query(); while (gc.next()) { var portalPageId = gc.getValue('legacy_page'); var pp = new GlideRecord('sys_portal_page'); if (!pp.get(portalPageId)) { invalidRecords.push({ canvas_sys_id: gc.getUniqueValue(), canvas_name: gc.getValue('name'), broken_legacy_page: portalPageId }); gc.setValue('legacy_page', ''); gc.update(); } } gs.info('Fixed ' + invalidRecords.length + ' sys_grid_canvas records with broken legacy_page references:'); for (var i = 0; i < invalidRecords.length; i++) { gs.info( 'Canvas: ' + invalidRecords[i].canvas_name + ' | canvas_sys_id: ' + invalidRecords[i].canvas_sys_id + ' | cleared broken_legacy_page: ' + invalidRecords[i].broken_legacy_page ); } What the script does: 1. Queries sys_grid_canvas for all records where legacy_page is not null 2. For each record, checks if the referenced sys_portal_page actually exists 3. If the portal page does not exist, clears the legacy_page field and updates the record 4. Logs the name, sys_id, and cleared reference for each fixed recordRelated Problem: PRB1948333