Submit a ticketCall us

Training ClassThe Orion® Platform Instructor-led Classes

Provided by SolarWinds® Academy, these trainings will introduce users to the Orion Platform and its features, management, and navigation. These courses are suitable for users looking to discover new tips, tricks, and ways to adapt their Orion products to better suit their monitoring needs:
Deploying the Orion Platform
Configuring Orion views, maps, and accounts
Configuring Orion alerts and reports

Reserve your seat.

Home > Success Center > Network Performance Monitor (NPM) > NPM - Knowledgebase Articles > Error during report migration in Configuration Wizard: Column 'Type' does not allow DBNullValue

Error during report migration in Configuration Wizard: Column 'Type' does not allow DBNullValue

Created by Matthew Lamb, last modified by MindTouch on Jun 23, 2016

Views: 1,425 Votes: 1 Revisions: 3

Updated June 13, 2016


This article goes over an issue that can occur during Configuration Wizard during the report migration. The following error is seen in the ConfigurationWizard.log:

2016-05-15 11:54:48,301 [5] ERROR ModuleHelper - Error migrating Orion reports.  Column 'Type' does not allow DBNull.Value. - System.InvalidOperationException: Column 'Type' does not allow DBNull.Value.
   at System.Data.SqlClient.SqlBulkCopy.ConvertValue(Object value, _SqlMetaData metadata, Boolean isNull, Boolean& isSqlType, Boolean& coercedToDataFeed)
   at System.Data.SqlClient.SqlBulkCopy.ReadWriteColumnValueAsync(Int32 col)
   at System.Data.SqlClient.SqlBulkCopy.CopyColumnsAsync(Int32 col, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.CopyRowsAsync(Int32 rowsSoFar, Int32 totalRows, CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsyncContinued(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.CopyBatchesAsync(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken)
   at System.Data.SqlClient.SqlBulkCopy.WriteToServer(IDataReader reader)
   at SolarWinds.Orion.Common.SqlHelper.ExecuteBulkCopy(String destinationTable, IDataReader reader, SqlConnection connection, SqlTransaction transation, SqlBulkCopyOptions options, Dictionary`2 mappedColumns)
   at SolarWinds.Orion.Common.SqlHelper.ExecuteBulkCopy(String destinationTable, IDataReader reader, SqlBulkCopyOptions options, Dictionary`2 mappedColumns)
   at SolarWinds.Orion.Core.Common.DALs.OrionReportDAL.PopulateOrionReports(ICollection`1 reports)
   at SolarWinds.Orion.Core.Common.OrionReportHelper.MigrateLegacyReports()
   at SolarWinds.ConfigurationWizard.Plugin.Common.ModuleHelper.MigrateLegacyReports(IOrionConfigHost host, ConfigurationLogDelegate logger)


NPM 11, 11.5 and 12


This issue occurs because report are not fully populated in an xml format, so the type of report is not known. Since that information is not known, it would be inserted as a NULL value for the column. As that column in the ReportDefinitions table does not all NULL entries, the insert will fail causing the query set to halt and not proceed further.


  1. View the list of reports in ReportDefinitions table and the directory Program Files (x86)\SolarWinds\Orion\Reports (also check Program Files (x86)\SolarWinds\Orion\Configurations\Reports if NCM 7.3 is installed).
  2. Compare the lists and see which reports are missing.
  3. Open those reports in Report Writer.
  4. If they are SQL Advanced reports, Make sure that the tables are still valid in the version you are on.
  5. Alter the report if any of the information is incorrect or missing.
  6. Save the report(s).
  7. Run the Configuration Wizard to allow import to complete.


If the Configuration Wizard results in the same issue, you can pull all of the suspect reports from the directories and place them on the desktop. This way, when the migration runs it skips those reports. You can then edit and modify as needed or discard if corrupted.


Last modified