Reputation: 4923
Using Release Management, I am trying to execute a Powershell to create a new release using the InitiateRelease REST API. I am using Update 4 with RM Server on prem.
The response I get is a 500 error. On the RM server, there is no error logged. However Fiddler gives a bit more details:
{"Message":"An error has occurred.","ExceptionMessage":"The given key was not present in the dictionary.", "ExceptionType":"System.Collections.Generic.KeyNotFoundException","StackTrace":" at System.Web.Http.ApiController.d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__0.MoveNext()"}
Here is my PS1.
$releaseDefinition = "MyReleaseTemplateName"
$releaseName = $releaseDefinition + (Get-Date).DateTime
$deploymentPropertyBag = "{
""MyComponentName:Build"" : ""MyBuildNumber"",
""ReleaseName"" : ""$releaseName""
}"
$propertyBag = [System.Uri]::EscapeDataString($deploymentPropertyBag)
$url = "http://myserver:1000/account/releaseManagementService/_apis/releaseManagement/OrchestratorService/InitiateRelease?releaseTemplateName=" + $releaseDefinition + "&deploymentPropertyBag=" + $propertyBag + "&api-version=3.0"
Write-Host $url
$wc = New-Object System.Net.WebClient
$wc.UseDefaultCredentials = $true
$releaseId = $wc.UploadString($url,"")
Upvotes: 1
Views: 299
Reputation: 4923
The problem I was facing was that the component name in the DeploymentPropertyBag was misspelled.
The error is not helping so I thought I would share my solution here.
Upvotes: 2