nkdAgility/azure-devops-migration-tools

[Bug]: Pipelines migration: AzureDevOpsPipelineProcessor System.ArgumentNullException: Value cannot be null. Parameter name: source

nasterixk opened this issue · 3 comments

Version

  • I confirm that I am using the latest version

Source Version

Azure DevOps Service

Target Version

Azure DevOps Service

Relevant configuration

{
  "ChangeSetMappingFile": null,
  "Source": {
    "$type": "TfsTeamProjectConfig",
    "Collection": "https://dev.azure.com/XXXXXX",
    "Project": "XXXXXXXX",
    "ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
    "AllowCrossProjectLinking": false,
    "AuthenticationMode": "AccessToken",
    "PersonalAccessToken": "XXXXXXXX",
    "LanguageMaps": {
      "AreaPath": "Area",
      "IterationPath": "Iteration"
    },
    "CollectionName": "https://dev.azure.com/XXXXXXXX"
  },
  "Target": {
    "$type": "TfsTeamProjectConfig",
    "Collection": "https://dev.azure.com/XXXXXXXX",
    "Project": "XXXXXXXX",
    "ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
    "AllowCrossProjectLinking": false,
    "AuthenticationMode": "AccessToken",
    "PersonalAccessToken": "XXXXXXXX",
    "LanguageMaps": {
      "AreaPath": "Area",
      "IterationPath": "Iteration"
    },
    "CollectionName": "https://dev.azure.com/XXXXXXXX"
  },
  "FieldMaps": [],
  "GitRepoMapping": null,
  "LogLevel": "Debug",
  "CommonEnrichersConfig": [],
  "Processors": [
	{
	  "$type": "AzureDevOpsPipelineProcessorOptions",
	  "Enabled": true,
	  "MigrateBuildPipelines": true,
	  "MigrateReleasePipelines": false,
	  "MigrateTaskGroups": false,
	  "MigrateVariableGroups": false,
	  "MigrateServiceConnections": false,
	  "BuildPipelines": null,
	  "ReleasePipelines": null,
	  "RepositoryNameMaps": {},
	  "ProcessorEnrichers": null,
      "SourceName": "AzureDevOpsEndpointSource",
      "TargetName": "AzureDevOpsEndpointTarget",
	}
  ],
  "Version": "15.0",
  "workaroundForQuerySOAPBugEnabled": false,
  "Endpoints": {
   	"AzureDevOpsEndpoints": [
		{
		  "name": "AzureDevOpsEndpointSource",
		  "$type": "AzureDevOpsEndpointOptions",
		  "Organisation": "https://dev.azure.com/XXXXXXXX",
		  "Project": "XXXXXXXX",
		  "AuthenticationMode": "AccessToken",
		  "AccessToken": "XXXXXXXX",
		  "EndpointEnrichers": null          
		},
		{
		  "Name": "AzureDevOpsEndpointTarget",
		  "$type": "AzureDevOpsEndpointOptions",
		  "Organisation": "https://dev.azure.com/XXXXXXXX",
		  "Project": "XXXXXXXX",
		  "AuthenticationMode": "AccessToken",
		  "AccessToken": "XXXXXXXX",
		  "EndpointEnrichers": null
		}
    ]
  }
}

Relevant log output

[00:32:34 FTL] [v15.0.4] Error while running AzureDevOpsPipelineProcessor
System.ArgumentNullException: Value cannot be null.
Parameter name: source
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at MigrationTools.Processors.AzureDevOpsPipelineProcessor.<>c__DisplayClass12_1.<FilterOutIncompatibleBuildDefinitions>b__3(Step t) in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.Rest\Processors\AzureDevOpsPipelineProcessor.cs:line 172
   at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
   at MigrationTools.Processors.AzureDevOpsPipelineProcessor.<>c__DisplayClass12_0.<FilterOutIncompatibleBuildDefinitions>b__0(BuildDefinition g) in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.Rest\Processors\AzureDevOpsPipelineProcessor.cs:line 170
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at MigrationTools.Processors.AzureDevOpsPipelineProcessor.<CreateBuildPipelinesAsync>d__17.MoveNext() in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.Rest\Processors\AzureDevOpsPipelineProcessor.cs:line 299
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MigrationTools.Processors.AzureDevOpsPipelineProcessor.<MigratePipelinesAsync>d__9.MoveNext() in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.Rest\Processors\AzureDevOpsPipelineProcessor.cs:line 95
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at MigrationTools.Processors.AzureDevOpsPipelineProcessor.InternalExecute() in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.Rest\Processors\AzureDevOpsPipelineProcessor.cs:line 49
   at MigrationTools.Processors.Processor.Execute() in D:\a\1\s\src\MigrationTools\Processors\Processor.cs:line 106
[00:32:34 INF] [v15.0.4] AzureDevOpsPipelineProcessor completed in 00:03:28.8623093 
[00:32:34 ERR] [v15.0.4] AzureDevOpsPipelineProcessor The Processor MigrationEngine entered the failed state...stopping run

What happened?

I was trying to migrate the build pipelines and have been receiving the error saying value can't be null and parameter name seems to be source. Please let me know if I'm missing in the config

Debug in Visual Studio

  • Visual Studio Debug

Same config file is working when I try to migrate individual build pipelines but throwing this error when try to migrate all

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 10 days

Hey, not sure if you sorted this out, but I was getting the same error and it turned out it was because I was attempting to migrate a build that had a non-standard build step that wasn't available in the Target project.

In my case, it was specifically a SonarQube code analysis step that caused the problem, but I'm assuming any build step that is not available in the Target project will cause this error.