Troubleshooting Guide: SQL Server Error 4844 — Unsupported Property Name in Bulk Data Source Provider String
Why This Error Happens
Error 4844 occurs when a BULK INSERT, OPENROWSET(BULK...), or format file references a property name in the provider string that SQL Server 2025 does not recognize or no longer supports. This is typically caused by a syntax error or deprecated keyword in the connection/provider string, an outdated format file generated by an older SQL Server version, or a mismatch between the property casing/spelling and what the current Bulk Load provider expects. It can also surface after an in-place upgrade to SQL Server 2025 where legacy bulk import scripts use provider properties that were removed or renamed in the new engine.
Step-by-Step Resolution Guide
Step 1: Review the Exact Provider String Syntax
- Open the
BULK INSERTstatement,OPENROWSET(BULK...)query, or XML format file that triggered the error. - Check the
%lsproperty name reported in the error message — this is the literal unsupported token. - Compare it against the current supported property list in Microsoft Docs for SQL Server 2025 Bulk Import (e.g.,
DATA_SOURCE,FORMATFILE_DATA_SOURCE,ERRORFILE_DATA_SOURCE). - Confirm there are no typos, extra spaces, or incorrect casing (SQL Server property names are case-sensitive in some providers).
Step 2: Regenerate or Update the Format File
- If using a
.xmlor non-XML format file, regenerate it using thebcputility against the current SQL Server 2025 instance: bcp YourDatabase.dbo.YourTable format nul -c -x -f C:\BulkData\NewFormatFile.xml -S YourServer -T- Open the regenerated file and confirm property names match the schema expected by SQL Server 2025 (older format files from SQL Server 2016/2019 may contain deprecated attributes).
- Replace the old format file path in your script with the newly generated one.
Step 3: Validate External Data Source and Credential Objects
- If using
OPENROWSET(BULK...)with an external data source (e.g., Azure Blob Storage), run: SELECT * FROM sys.external_data_sources;- Confirm the
LOCATIONand associatedCREDENTIALdo not include unsupported legacy properties such as oldPROVIDER_STRINGkey-value pairs tied to deprecated OLE DB providers. - Drop and recreate the external data source if it references an outdated provider type:
DROP EXTERNAL DATA SOURCE MyBulkSource;CREATE EXTERNAL DATA SOURCE MyBulkSource WITH (LOCATION = 'https://account.blob.core.windows.net/container', CREDENTIAL = MyCredential);
Step 4: Check for Deprecated OLE DB / Provider Keywords
- Search the full connection or provider string for legacy keywords retired in SQL Server 2025, such as
SQLNCLI,SQLOLEDB, or olderMSOLEDBSQLversion-specific flags. - Replace deprecated providers with the current supported driver, e.g.,
MSOLEDBSQL19or the latest OLE DB Driver for SQL Server. - Update any linked server or bulk import configuration referencing the old provider name in SSMS under Server Objects > Linked Servers > Providers.
Step 5: Apply Latest Cumulative Update
- Open SQL Server Configuration Manager and verify the engine version under SQL Server Services.
- Download and install the latest Cumulative Update (CU) for SQL Server 2025 from the Microsoft Update Catalog, since provider string parsing bugs are occasionally patched in CUs.
- Restart the SQL Server service after installation:
net stop MSSQLSERVER && net start MSSQLSERVER.
Alternative or Verification Steps
- Re-run the original
BULK INSERTorOPENROWSET(BULK...)statement after corrections; a successful data load with no Error 4844 confirms the fix. - As an alternative, test the bulk operation using SSIS or Azure Data Factory bulk load components instead of raw T-SQL, which can bypass manual provider string errors entirely.