azuredevops icon indicating copy to clipboard operation
azuredevops copied to clipboard

Downloading installer tries to download a non existing tag

Open PascalTurbo opened this issue 3 years ago • 5 comments

Today the downloader fails with the following error.

Downloading Dependency Check latest installer from GitHub..
Cannot read property 'find' of undefined
##[error]Cannot read property 'find' of undefined
##[error]Unhandled error condition detected.

When analyzing the code it seems that it tries to download https://api.github.com/repos/jeremylong/DependencyCheck/releases/tags/vlatest but that tag "vlatest" doesn't exist.

PascalTurbo avatar Jan 14 '22 09:01 PascalTurbo

Not sure if anyone is still interested in this issue, but we've been encountering it for the last few days, but it has since gone away again - most frustrating!

The code may have changed since the issue was originally created, as I can see that at the following line, if the version is set to its default, 'latest', then it uses a different URL to what is cited when this issue was created: https://github.com/dependency-check/azuredevops/blob/ec3d0e53f8be4feeb48eb97be9df71b01767baed/src/Tasks/dependency-check-build-task/dependency-check-build-task.ts#L284 It is instead https://api.github.com/repos/jeremylong/DependencyCheck/releases/latest, which I've confirmed does indeed exist, and following the code through it should be able to successfully locate the asset with content-type == 'application/zip': https://github.com/dependency-check/azuredevops/blob/ec3d0e53f8be4feeb48eb97be9df71b01767baed/src/Tasks/dependency-check-build-task/dependency-check-build-task.ts#L288 It's hard to tell as there's not a lot of error handling, but you'd assume that the code is successfully retrieving something from that URL, it just can't locate the correct asset. Given it occurs sporadically, I did wonder also whether it may be hitting some kind of GitHub API rate limit, but then I'd probably expect a different error i.e. the HttpClient wouldn't receive a 200 OK back in that case, but given there's no code explicitly checking the HTTP status code of the response, I don't know if the HttpClient being used throws an error for a non-200 response, or whether this is actually something that should be being explicitly checked - or at least logged?

Anyway, a bit more information for if/when this occurs again in the future.

dave-sampson13 avatar Nov 04 '22 22:11 dave-sampson13

Encountering this issue pretty frequently of late, I've done some more digging. It looks like the client used here doesn't throw for non-200 status codes:

image https://www.npmjs.com/package/typed-rest-client

Which tracks with what's coming back from the API when a non-existent version tag is requested:

image

Rate limiting seems to make some amount of sense I think? Given the intermittent nature and the fact that it will work and then not work for the exact same pipeline for seemingly no reason.

ehornby avatar Feb 06 '23 18:02 ehornby

Does anyone of you still have this issue? If so I'll look into it - otherwise I'll close this issue.

Saturate avatar Dec 06 '23 11:12 Saturate

Does anyone of you still have this issue? If so I'll look into it - otherwise I'll close this issue.

I'm getting intermittent failures with the dependency check extension from the Visual Studio Marketplace in the Azure DevOps pipeline.

Here is the output:

Starting: Run dependency security checks

Task : OWASP Dependency Check Description : Dependency Check is a Software Composition Analysis (SCA) tool that attempts to detect publicly disclosed vulnerabilities contained within a project's dependencies. Version : 6.1.3 Author : Dependency Check Help : More Information

Starting Dependency Check... Setting report directory to /azp/_work/16/s/depedancy-check-results/ Creating report directory at /azp/_work/16/s/depedancy-check-results/ Downloading Dependency Check latest installer from GitHub.. Cannot read property 'find' of undefined ##[error]Cannot read property 'find' of undefined ##[error]Unhandled error condition detected. Ending Dependency Check... Finishing: Run dependency security checks

Johnyb32 avatar Mar 07 '24 08:03 Johnyb32

Will take another look at this once we get the new pipeline for our build up and running.

Saturate avatar Mar 11 '24 18:03 Saturate