Import Set Table Returns Invalid XML Character Error After Import - Cannot Access TableIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } When accessing an import set table after running an import operation, the system displays an error message indicating invalid XML characters were found in the element content. The import set table becomes unreadable and inaccessible. This error prevents users from viewing, accessing, or managing records in the import set table. Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } - Error message when trying to access the table: "An invalid XML character (Unicode: 0x3) was found in the element content of the document."- Error message in alternative formatting: "Character reference "" is an invalid XML character."- Error message variation: "An invalid XML character was encountered during parsing of the document."- Import set table displays corrupted column labels containing garbage characters, special symbols, and non-printable characters- Example of corrupted column label visible in sys_dictionary: PK�����!�{'È!z������[Content_Types].xml ¢("- Table becomes completely unreadable after import completion- Unable to view, access, or retrieve any records in the import set table- Column names appear garbled with binary or compressed file signatures (e.g., [Content_Types].xml references)- Error occurs immediately when attempting to open the import set table list view Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } All currently supported ServiceNow releases (Vancouver, Xanadu, Yokohama, Zurich, Australia, and later) Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } When data is imported from a file (CSV, Excel, XML, etc.), ServiceNow dynamically creates columns in the sys_dictionary table based on the structure and content present in the source file. If the source file contains corrupted or invalid data — such as binary data, improperly encoded characters, non-standard special characters, or embedded file signatures — ServiceNow creates columns with invalid XML characters in their column names and labels. These invalid XML characters (such as Unicode: 0x3) violate XML parsing standards. When the system attempts to parse these corrupted column definitions from sys_dictionary, the XML parser encounters these invalid characters and fails, rendering the entire import set table unreadable and inaccessible. **Technical Detail:** The Unicode character 0x3 (End of Text control character) and similar control characters are not permitted in XML element content per the XML 1.0 specification. When ServiceNow tries to serialize the import set table schema for display or access, the XML parser rejects the document structure. This is not a platform defect but rather a result of importing malformed or corrupted source data containing invalid characters or binary content. Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } PREREQUISITES- Admin access or access with the "admin" role (required for sys_dictionary table access)- Ability to modify table schema- Access to System Definition module STEP 1: IDENTIFY INVALID COLUMNS IN SYS_DICTIONARY1. Log in to your ServiceNow instance as an admin user2. Navigate to System Definition > Tables and Columns > Columns3. This opens the sys_dictionary table view4. In the Table column, enter the name of the import set table that is displaying the XML error (e.g., "u_my_import_set")5. Click the filter button or press Enter to search6. Review the list of columns for the import set table7. Look for columns with corrupted names that display garbage characters, special symbols, or binary signatures8. Example of corrupted column name: "PK�����!{'È" or "Content_Types" or columns containing "[" and "]" with non-readable characters9. Note the exact sys_id of each corrupted column (you may need to hover over the row to see the sys_id)10. Take a screenshot of the corrupted columns for reference and troubleshooting STEP 2: DELETE INVALID COLUMNS FROM SYS_DICTIONARY1. From the sys_dictionary list view, click on the first corrupted column row to open its detail form2. Scroll to the bottom of the form and click the "Delete" button3. Confirm the deletion when prompted4. Return to the sys_dictionary list and repeat this process for each remaining corrupted column5. Delete all columns that contain invalid characters or appear to be garbage data6. Do not delete legitimate columns that contain actual data field names7. Once all corrupted columns are deleted, close the sys_dictionary table STEP 3: VERIFY TABLE IS NOW ACCESSIBLE1. Navigate back to the import set table list (e.g., System Integration > Staging Tables > [Your Import Set Table])2. The table should now be accessible and the XML error should no longer appear3. If the table is still showing errors, repeat Steps 1-2 to ensure all corrupted columns were deleted4. If the error persists, contact ServiceNow support STEP 4: CLEAN AND VALIDATE SOURCE DATA1. Go back to the original import file (CSV, Excel, XML, etc.)2. Open the file in a text editor (e.g., Notepad++) to identify where the corrupted data originated3. Check for: - Binary data or non-text content mixed into the file - File encoding issues (ensure file is UTF-8 or ASCII, not binary) - Embedded files or archives (e.g., .zip, .xml signatures like "[Content_Types].xml") - Invalid special characters or control characters - Non-printable characters or corrupted fields4. Remove or correct any invalid characters, binary data, or encoding issues5. Ensure all data in the file conforms to standard text formats and character sets6. Verify the file does not contain embedded files, compressed archives, or binary data7. If the file was exported from another system, re-export it ensuring proper text encoding STEP 5: RE-IMPORT CLEANED DATA1. Create a new import set or clear the existing corrupted one (delete and recreate)2. Upload the cleaned and corrected source file3. Review the column mapping to ensure proper field alignment4. Run the import operation in a test/dev instance first to validate5. Once successful in dev, run the import in production6. Verify that the import set table is now accessible7. Verify that column names are properly named and readable8. Confirm all imported records are visible and accessible STEP 6: MONITOR FOR SIMILAR ISSUES1. If re-importing the same source file, monitor the import logs for any warnings2. Review the import statistics to ensure all rows were successfully imported3. Spot-check the import set table records to ensure data quality4. If the error reoccurs, the source file may contain additional corrupted data in different fields PREVENTION & BEST PRACTICES - Validate source files before import: Check file encoding, remove binary data, and ensure data conforms to expected formats- Use import templates with predefined columns: Define column structure upfront rather than allowing automatic column creation from source data- Test imports in a dev instance first: Always validate new import sources in non-production before running on production data- Monitor import logs: Review import results, warnings, and error logs for any indications of data quality issues- Implement data cleansing: Use ETL tools, scripting, or spreadsheet functions to clean and normalize source data before import- Establish file standards: Document expected column names, formats, data types, and character encoding for import files- Archive original files: Keep backup copies of source files for troubleshooting if issues arise after import- Implement file validation: Use file integrity checks (checksums, file size limits) to detect corrupted uploads- Restrict file types: Limit accepted import file types to CSV, Excel, or XML; block unknown file formats- Use encoding specifications: Explicitly specify UTF-8 encoding when exporting from source systems