I'm accessing a user definable API through a service webhook in Azure DevOps. I can tell from my information event logging that the script runs completely fine. At the end of the script I do this.
return new ApiTriggerOutput
{
ResponseCode = (int)StatusCode.Ok,
};
But in Azure DevOps I get an internal server error with code 500.
If my request is in an incorrect format, I have some checks in my script that then return something like this:
return new ApiTriggerOutput
{
ResponseBody = $"Azure DevOps project with id {workItem.resourceContainers.project.id} is not supported",
ResponseCode = (int)StatusCode.BadRequest,
};
These response codes come in correctly into Azure DevOps.
What's happening?
EDIT: Full response:
Status Code: 500
Reason Phrase: Internal Server Error
HTTP Version: 1.1
Headers:
{
Connection: keep-alive
Request-Context: appId=cid-v1:e6146ee8-8f7e-4826-92a9-9e3220cf1975
TunnelConnection: 04f72ccd-573f-4ea4-abf7-aeff6b604a18
TunnelForwarded: True
Strict-Transport-Security: max-age=15552000; includeSubDomains
SL-Filter: ALLOWED (single request, by path), time=2024-2-22 9:10:45
Content-Security-Policy: frame-ancestors 'self'
X-Content-Type-Options: nosniff
X-Frame-Options: deny
Date: Thu, 22 Feb 2024 08:10:45 GMT
Set-Cookie: TunnelConnection=04f72ccd-573f-4ea4-abf7-aeff6b604a18; path=/; secure; httponly
Content-Length: 235
Content-Type: application/json; charset=utf-8
}
Hi Toon,
Usually, a 500 error code could indicate an unhandled exception in the code.
Do you receive anything in the response body besides de error code?
I just saw your edit and in this part where it mentions ‘Content-Length: 235’ it would lead me to believe that a body is available but I do not see it.
It could be that it is being trimmed somewhere in Azure but its content could give you an indication of what is failing.
I was wondering the same thing haha. Kind of surprises me that I never get the body in there. Would need to try to figure out how to find it in Azure DevOps.
The return output you see is the last part of my code, preceeded with an engine.GenerateInformation(“Finished script”);. This message does get generated into my information events, so nothing more is happening.
I’ll edit the full response I see into the question.