How to fix Error 9464 on Windows Server 2025 / Windows 11

SQL Server Error 9464: XML Parsing Failure Troubleshooting Guide

Why This Error Happens

Error 9464 occurs when the SQL Server XML parser encounters malformed, incomplete, or improperly encoded XML data at a specific line number during a parsing operation (such as OPENXML, .nodes(), or XML data type validation against a schema collection). This is typically caused by invalid characters, mismatched tags, truncated data from an application feed, or an encoding mismatch (e.g., UTF-16 data being interpreted as UTF-8). It can also surface when a stored procedure passes XML parameters that exceed expected formatting rules defined in an associated XML Schema Collection (XSD).

Step-by-Step Resolution Guide

Step 1: Identify the Exact Line and Source of the XML

  • Capture the full error message, noting the specific line number referenced (e.g., “XML parsing: line 12, unclosed tag”).
  • Use SQL Server Management Studio (SSMS) 21 on Windows 11 to re-run the failing query in isolation to capture the raw XML variable being passed.
  • Run SELECT CAST(@YourXMLVariable AS NVARCHAR(MAX)); to visually inspect the string for truncation or invalid characters.

Step 2: Validate Encoding and Special Characters

  • Check if the source data contains unescaped special characters (e.g., &, <, >) that need to be converted to XML entities (&amp;, &lt;, &gt;).
  • If the data originates from an external file, verify the encoding in Windows Server 2025 using Notepad++ or PowerShell: Get-Content -Path "C:\Data\file.xml" -Encoding UTF8.
  • Ensure the <?xml version="1.0" encoding="UTF-8"?> declaration matches the actual byte-order-mark (BOM) of the file.

Step 3: Repair or Reconfigure the XML Schema Collection

  • Navigate to the Database in SSMS: Databases > [YourDB] > Programmability > Types > XML Schema Collections.
  • If the schema collection is outdated, drop and recreate it to match the current XML structure using DROP XML SCHEMA COLLECTION followed by CREATE XML SCHEMA COLLECTION.
  • Verify the application layer (e.g., .NET or Java service) is serializing the object into XML correctly before sending it to the stored procedure.

Step 4: Increase Timeout or Buffer Limits (If applicable)

  • If the error happens on massive XML blobs, check the network packet size in SQL Server Configuration Manager.
  • Right-click SQL Server Services > Protocols for MSSQLSERVER and ensure no size restrictions are causing the XML string to be cut off mid-transfer, which often triggers a “line X” parsing error because the tag closes prematurely.

Alternative or Verification Steps

  • Verification: Run the query again using SELECT 1 FROM sys.messages WHERE message_id = 9464; to confirm the error definition, then re-execute the original transaction to ensure it processes without throwing the exception.
  • Alternative: If the XML is generated by a third-party tool, bypass the strict XML parser by importing the data as NVARCHAR(MAX) first and using TRY_CAST to convert it to XML, allowing you to filter out NULL (invalid) results without crashing the batch job.