azure-devops-migration-tools
azure-devops-migration-tools copied to clipboard
[Bug]: Pipeline Processor returning "UnsupportedMediaTypeException"
Version
- [X] I confirm that I am using the latest version
Source Version
Azure DevOps Server 2019
Target Version
Azure DevOps Service
Relevant configuration
{
"Version": "0.0",
"LogLevel": "Debug",
"TelemetryEnableTrace": false,
"workaroundForQuerySOAPBugEnabled": false,
"Source": {
"$type": "TfsTeamProjectConfig",
"Collection": "mycollectionurlhere",
"Project": "myprojhere",
"ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
"AuthenticationMode": "Prompt",
"AllowCrossProjectLinking": false,
"PersonalAccessToken": "myPAThere",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"Target": {
"$type": "TfsTeamProjectConfig",
"Collection": "url",
"Project": "proj",
"ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
"AuthenticationMode": "AccessToken",
"AllowCrossProjectLinking": false,
"PersonalAccessToken": "pat",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"FieldMaps": [
{
"$type": "FieldSkipMapConfig",
"WorkItemTypeName": "User Story",
"targetField": "Custom.Raquel"
}
],
"WorkItemTypeDefinition": {
"User Story": "User Story"
},
"GitRepoMapping": null,
"CommonEnrichersConfig": [
{
"$type": "TfsNodeStructureOptions",
"PrefixProjectToNodes": false,
"NodeBasePaths": [],
"AreaMaps": {},
"IterationMaps": {},
"ShouldCreateMissingRevisionPaths": true
}
],
"Processors": [
{
"$type": "AzureDevOpsPipelineProcessorOptions",
"Enabled": true,
"MigrateBuildPipelines": true,
"MigrateReleasePipelines": true,
"MigrateTaskGroups": false,
"MigrateVariableGroups": false,
"MigrateServiceConnections": false,
"BuildPipelines": null,
"ReleasePipelines": null,
"RefName": null,
"SourceName": "Source",
"TargetName": "Target",
"RepositoryNameMaps": {},
"versionParameter": "5.1"
},
{
"$type": "TeamMigrationConfig",
"Enabled": false,
"PrefixProjectToNodes": false,
"EnableTeamSettingsMigration": true,
"FixTeamSettingsForExistingTeams": false
},
{
"$type": "WorkItemMigrationConfig",
"Enabled": false,
"ReplayRevisions": true,
"PrefixProjectToNodes": false,
"UpdateCreatedDate": true,
"UpdateCreatedBy": true,
"WIQLQueryBit": "AND [System.Tags] CONTAINS 'crc'",
"WIQLOrderBit": "[System.ChangedDate] desc",
"LinkMigration": true,
"AttachmentMigration": true,
"AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
"FixHtmlAttachmentLinks": false,
"SkipToFinalRevisedWorkItemType": true,
"WorkItemCreateRetryLimit": 5,
"FilterWorkItemsThatAlreadyExistInTarget": true,
"PauseAfterEachWorkItem": false,
"AttachmentMaxSize": 480000000,
"AttachRevisionHistory": true,
"LinkMigrationSaveEachAsAdded": false,
"GenerateMigrationComment": true,
"WorkItemIDs": null,
"MaxRevisions": 0,
"NodeStructureEnricherEnabled": false,
"UseCommonNodeStructureEnricherConfig": false,
"StopMigrationOnMissingAreaIterationNodes": false,
"NodeBasePaths": [],
"AreaMaps": {},
"IterationMaps": {},
"MaxGracefulFailures": 0
}
],
"Endpoints": {
"AzureDevOpsEndpoints": [
{
"name": "Source",
"$type": "AzureDevOpsEndpointOptions",
"Organisation": "url",
"Project": "proj",
"AuthenticationMode": "Prompt",
"AccessToken": "pat",
"EndpointEnrichers": null
},
{
"Name": "Target",
"$type": "AzureDevOpsEndpointOptions",
"Organisation": "url/",
"Project": "proj",
"AuthenticationMode": "AccessToken",
"AccessToken": "pat",
"EndpointEnrichers": null
}
]
}
}
Relevant log output
Response Code:BadRequest
{"$id":"1","innerException":null,"message":"The requested REST API version of 6.0 is out of range for this server. The latest REST API version this server supports is 5.1.","typeName":"Microsoft.VisualStudio.Services.WebApi.VssVersionOutOfRangeException, Microsoft.VisualStudio.Services.WebApi","typeKey":"VssVersionOutOfRangeException","errorCode":0,"eventId":3000}
------------------------------------
System.Net.Http.UnsupportedMediaTypeException: No MediaTypeFormatter is available to read an object of type 'RestResultDefinition`1' from content with media type 'text/html'.
at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)
at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger)
at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, IEnumerable`1 formatters)
at MigrationTools.Endpoints.AzureDevOpsEndpoint.<GetApiDefinitionsAsync>d__9`1.MoveNext() in C:\Users\g13228\workspace\azure-devops-migration-tools 3\azure-devops-migration-tools\src\MigrationTools.Clients.AzureDevops.Rest\Endpoints\AzureDevOpsEndpoint.cs:line 186
What happened?
My original error was that the REST API version 6.0 is out of range for my server. I went ahead and updated all references of the API 6.0 to 5.1 so my server could support it.
My current error is the "System.Net.Http.UnsupportedMediaTypeException: No MediaTypeFormatter is available to read an object of type 'RestResultDefinition`1' from content with media type 'text/html'." I can't seem to find any references of this online and wondering if someone can point me in the right direction. Not sure what I am missing here, all other processors are working well
Thanks
Debug in Visual Studio
- [X] Visual Studio Debug
It sounds like 5.1 does not support the features being accessed. 6.0 would be the minimum...
You would need to use 7.2 if 6 is no longer supported.... but Im not sure what 2019 supports
I see - thanks for your help!
@MrHinsh You find the current REST API - AzD version mapping table at Mapping Table. 2019 only supports REST API version 5.x.
Then it looks like the pipeline migrator is not supported in 2019. We need 6.1+ for it to work.
@norschel is there a way to detect the version of TFS from the API?
Hi Everyone,
I am using the migration tool to migrate the pipelines from one organization to another in Azure Devops. I am getting the below error. Can anyone please help me with this?
[15:09:40 FTL] Error while running AzureDevOpsPipelineProcessor
System.NullReferenceException: Object reference not set to an instance of an object.
at MigrationTools.Processors.AzureDevOpsPipelineProcessor.<CreateBuildPipelinesAsync>d__17.MoveNext() in D:\a\1\s\src\MigrationTools.Clients.AzureDevops.Rest\Processors\AzureDevOpsPipelineProcessor.cs:line 304
--- 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
Please create a new thread @madhuripawar2212; this is a different topic.
When you do post, attach your config and logs.
Then it looks like the pipeline migrator is not supported in 2019. We need 6.1+ for it to work.
@norschel is there a way to detect the version of TFS from the API?
In case of WorkItemMigrationConfig, you can ask the TfsProjectCollection class for serverversion, e.g.:
y = new TfsTeamProjectCollection(TfsConfig.Collection);
Log.Debug(y.ServerDataProvider.ServerVersion);
The result is for example:
ServerVersion = "Dev19.M225.3" (AzD 2022)
.
For the REST API you can call any REST API (without providing the api-version) and then check the content-type of the response header. The result in this case is for example:
Content-Type: application/json; charset=utf-8; api-version=5.1-preview.1
@tomfrenzel perhaps adding a kill switch in the event of an older API!
@MrHinsh I am getting the same error while migrating pipelines, please help Version - 12.0 Source - azure devops server 2019 Target - azure devops services Error - {"$id":"1","innerException":null,"message":"The requested REST API version of 6.0 is out of range for this server. The latest REST API version this server supports is 5.1.","typeName":"Microsoft.VisualStudio.Services.WebApi.VssVersionOutOfRangeException, Microsoft.VisualStudio.Services.WebApi","typeKey":"VssVersionOutOfRangeException","errorCode":0,"eventId":3000}
The pipeline migrator needs a minimum of V6 of the Rest API.
Your version of TFS is not supported.
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