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.




Helpful resources

Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Community Call Conversations

Introducing the Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (1,543)