Showing results for 
Search instead for 
Did you mean: 
Advocate II
Advocate II

Import-CrmDataFile error: Object reference not set to an instance of an object.

Any time I use the Import-CrmDataFile cmdlet, I get an "Object reference not set to an instance of an object." error message (NullReferenceException). This includes PowerShell on my own machine as well inside of Azure DevOps Pipelines. However, the exact same code runs successfully in PowerShell ISE.


Btw, Export-CrmDataFile works in all environments without issue.


Wondering if anybody else is facing this issue. I put together this test script that can be tested by anyone in any environment.


$VerbosePreference = 'Continue'
$InformationPreference = 'Continue'

# check for required variables
if (-not ($env:CrmUrl -and $env:CrmUser -and $env:CrmPassword -and $env:CrmDataFile)) {
    throw 'Must set environment variables: CrmUrl, CrmUser, CrmPassword, CrmDataFile'

# for check to see if current user is assigned the System Administrator security role
$sysAdminQuery = '<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true">
  <entity name="role">
    <filter type="and">
      <condition attribute="name" operator="eq" value="System Administrator" />
    <link-entity name="systemuserroles" from="roleid" to="roleid" visible="false" intersect="true">
      <link-entity name="systemuser" from="systemuserid" to="systemuserid">
        <filter type="and">
          <condition attribute="systemuserid" operator="eq-userid" />

# install ps modules
(Get-Module -Name 'Microsoft.Xrm.Tooling.CrmConnector.PowerShell' -ListAvailable) -or (Install-Module -Name 'Microsoft.Xrm.Tooling.CrmConnector.PowerShell' -Force) | Out-Null
(Get-Module -Name 'Microsoft.Xrm.Tooling.ConfigurationMigration' -ListAvailable) -or (Install-Module -Name 'Microsoft.Xrm.Tooling.ConfigurationMigration' -Force) | Out-Null
Import-Module -Name 'Microsoft.Xrm.Tooling.CrmConnector.PowerShell'
Import-Module -Name 'Microsoft.Xrm.Tooling.ConfigurationMigration'

# test connection
$Connection = Get-CrmConnection -ConnectionString "AuthType=ClientSecret; Url=$env:CrmUrl; ClientId=$env:CrmUser; ClientSecret=$env:CrmPassword"
Write-Host "My user ID is: $($Connection.GetMyCrmUserId())"
Write-Host "I am system administrator: $($Connection.GetEntityDataByFetchSearch($sysAdminQuery) -ne $null)"
Write-Host "Data file: $([System.IO.FileInfo]::new($env:CrmDataFile).Length) bytes"

# import data
Write-Host 'Importing data file...'
Import-CrmDataFile -CrmConnection $Connection -DataFile $env:CrmDataFile -EmitLogToConsole



The output looks like this:


My user ID is: 9e63c21b-bad5-eb11-bacc-000d3a5799ea
I am system administrator: True
Data file: 1145 bytes
Importing data file...
Import-CrmDataFile : Object reference not set to an instance of an object.
At D:\a\_temp\29e74dce-4d76-49f4-9514-c4817cb5d807.ps1:42 char:1
+ Import-CrmDataFile -CrmConnection $Connection -DataFile $env:CrmDataF ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Microsoft.Xrm.T...portCrmDataFile:ImportCrmDataFile) [Import-CrmDataF
ile], NullReferenceException
+ FullyQualifiedErrorId : -1,Microsoft.Xrm.Tooling.ConfigurationMigration.CmdLets.ImportCrmDataFile



Accepted Solutions
Advocate II
Advocate II

@Rtmaus @DavidJen Good news. The latest version ( appears to fix the problem.




View solution in original post


Hi David

a couple questions:

- are you running your script above in Powershell Desktop/Windows? Currently, the XrmTooling PS modules do not support PS Core yet

- are you running the latest available modules from powershellgallery?


If your NullRefExcp persists, please go through your CSS contact (as we discussed offline) and have them attach your file (with the schema info) and the PS module version to the incident




New Member

@DavidJen I am having the same issue as @davidjenkins using Github Actions. 


I've tested this on Windows 10 and Windows 2019 (to try and be as close to the GitHub Actions Windows-Latest runner). When run manually it works fine and imports without issue.


Running via Github Actions on Windows Latest and using PowerShell Desktop (note the version in the log is ps-version: 5.1.17763.2090) the output from the log file is as follows:


2021-08-29T01:14:42.1042064Z VERBOSE: Module 'Microsoft.Xrm.Tooling.ConfigurationMigration' was installed successfully to path 
2021-08-29T01:14:42.1044667Z 'C:\Users\runneradmin\Documents\WindowsPowerShell\Modules\Microsoft.Xrm.Tooling.ConfigurationMigration\'.
2021-08-29T01:14:42.1769047Z Install done...
2021-08-29T01:14:42.1804106Z Connection String: AuthType=ClientSecret;url=https://***;ClientId=***;ClientSecret=***;
2021-08-29T01:14:50.6982204Z Crm connection established: Microsoft.Xrm.Tooling.Connector.CrmServiceClient
2021-08-29T01:14:50.6989495Z Connected to: Microsoft.Xrm.Tooling.Connector.CrmServiceClient
2021-08-29T01:14:50.6996060Z ps-version: 5.1.17763.2090
2021-08-29T01:14:50.7001973Z Importing data...
2021-08-29T01:14:51.1353746Z VERBOSE: Verbose output log file: 'D:\a\_temp\data-logs\Microsoft.Xrm.Tooling.ConfigurationMigration-2021-08-29.log'
2021-08-29T01:14:51.1477658Z Microsoft.Xrm.Tooling.ConfigurationMigration.Powershell Information: 8 : Got CrmWebsvcAction Object from the Pipeline and is in Ready State
2021-08-29T01:14:51.3703403Z Import-CrmDataFile : Object reference not set to an instance of an object.
2021-08-29T01:14:51.3706480Z At D:\a\tarkine\tarkine\pipeline\data-migration\import-data-config-tool.ps1:53 char:1
2021-08-29T01:14:51.3707531Z + Import-CrmDataFile -CrmConnection $ConnectionTarget -DataFile $dataFi ...
2021-08-29T01:14:51.3708547Z + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-08-29T01:14:51.3709612Z     + CategoryInfo          : InvalidOperation: (Microsoft.Xrm.T...portCrmDataFile:ImportCrmDataFile) [Import-CrmDataF 
2021-08-29T01:14:51.3710731Z    ile], NullReferenceException
2021-08-29T01:14:51.3712413Z     + FullyQualifiedErrorId : -1,Microsoft.Xrm.Tooling.ConfigurationMigration.CmdLets.ImportCrmDataFile


This is using the following:





I've set this to verbose and this is all the detail that I get from the logs, both Github and the cmdlet itself.


So something odd is going on when run on the windows-latest machines for both DevOps and Github Actions.


New Member

@davidjenkins I identified that the issue is in the v1.0.0.60 package. As PowerShell installs the latest version this was causing the runner to install that version.


I overrode the installer with the Required Version command as per below:

Install-Module "Microsoft.Xrm.Tooling.ConfigurationMigration" -RequiredVersion


Running version works as expected. I suspect that there is something wrong with the within Pipelines. 

Advocate II
Advocate II

@Rtmaus @DavidJen Good news. The latest version ( appears to fix the problem.




View solution in original post

Helpful resources

UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Users online (1,339)