cribeiro84 / azure-devops-pull-request-hub

Azure DevOps Pull Request Manager Hub
MIT License
59 stars 35 forks source link

NetworkException during extension load #266

Open jbingham90 opened 1 year ago

jbingham90 commented 1 year ago

When loading the Pull Request Manager Hub page, no content is loaded and this error displays: "There was an error during the extension load: NetworkException: TF400893: Unable to contact the server. Please check your network connection and try again." This has been happening for several days and for multiple users. Multiple javascript errors like this are also reported in the console:

Fetch.js:122 Unhandled exception in fetch for https://dev.azure.com/xxxx/_apis/git/repositories/xxxx/pullRequests?searchCriteria.repositoryId=&searchCriteria.creatorId=&searchCriteria.includeLinks=true&searchCriteria.reviewerId=&searchCriteria.sourceRefName=&searchCriteria.sourceRepositoryId=&searchCriteria.status=1&searchCriteria.targetRefName=&maxCommentLength=10&%24top=0: TypeError: Failed to fetch

PullRequestsTab.tsx:362 NetworkException: TF400893: Unable to contact the server. Please check your network connection and try again. at Object. (https://caribeiro84.gallerycdn.vsassets.io/extensions/caribeiro84/pull-request-manager-hub/2.20221212.1/1670855740161/build/static/js/main.ce4e535b.js:2:4088) at https://caribeiro84.gallerycdn.vsassets.io/extensions/caribeiro84/pull-request-manager-hub/2.20221212.1/1670855740161/build/static/js/main.ce4e535b.js:2:2877 at Object.throw (https://caribeiro84.gallerycdn.vsassets.io/extensions/caribeiro84/pull-request-manager-hub/2.20221212.1/1670855740161/build/static/js/main.ce4e535b.js:2:2982) at s (https://caribeiro84.gallerycdn.vsassets.io/extensions/caribeiro84/pull-request-manager-hub/2.20221212.1/1670855740161/build/static/js/main.ce4e535b.js:2:1775)

Steps to reproduce the behavior:

  1. Error occurs on loading the Pull Request Manager Hub page.
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior Should load the list of active pull requests.

Desktop (please complete the following information):

bergamin commented 1 year ago

Same here. It started a couple days ago and would go away on a second try. But today it just refuses to work.

Here is what it looks like visually:

image

quasarea commented 1 year ago

Same here

Lariel commented 1 year ago

Same here :/

image

cribeiro84 commented 1 year ago

Hello all, thanks for reaching out. Would you mind to check on the developer tools console if there is any error? If so, if you could share the details would be helpful to understand what's happening. I am able to access the extension normally on my account, therefore, I suspect it can be any type of content blockage or corporate proxy.

jbingham90 commented 1 year ago

In addition to the type of error listed in the original post above (there are multiple occurrences of it listed), I see multiple errors like this one:

Fetch.js:116 GET https://dev.azure.com/{account}/_apis/git/repositories/{guid}/pullRequests?searchCriteria.repositoryId=&searchCriteria.creatorId=&searchCriteria.includeLinks=true&searchCriteria.reviewerId=&searchCriteria.sourceRefName=&searchCriteria.sourceRepositoryId=&searchCriteria.status=1&searchCriteria.targetRefName=&maxCommentLength=10&%24top=0 net::ERR_FAILED

But accessing that URL (and the URL in the original message) directly in a browser returns a JSON response successfully, so I do not think the errors are because the URL's are inaccessible. No other parts of DevOps are seeing these kinds of errors.

@bergamin @quasarea @Lariel Can I ask how many repositories you have in the project you are seeing this issue in? We have >600.

cribeiro84 commented 1 year ago

It seems an error from the Azure DevOps SDK because I don't have any Fetch.js file from my side. It might be related to the number of repos. Do you have any other azure org/project with less repos that can be tested? Many thanks

HED-mstarr commented 1 year ago

I am having the same issue running Chrome 119.0.6045.105 in Linux (Ubuntu 22.04). The interesting part is if I switch to using Firefox 119.0.1 in Linux (Ubuntu 22.04), the issue is not present. With Firefox I can load the same DevOps URL with no issue and see the list of PRs.

Lariel commented 1 year ago

In addition to the type of error listed in the original post above (there are multiple occurrences of it listed), I see multiple errors like this one:

Fetch.js:116 GET https://dev.azure.com/{account}/_apis/git/repositories/{guid}/pullRequests?searchCriteria.repositoryId=&searchCriteria.creatorId=&searchCriteria.includeLinks=true&searchCriteria.reviewerId=&searchCriteria.sourceRefName=&searchCriteria.sourceRepositoryId=&searchCriteria.status=1&searchCriteria.targetRefName=&maxCommentLength=10&%24top=0 net::ERR_FAILED

But accessing that URL (and the URL in the original message) directly in a browser returns a JSON response successfully, so I do not think the errors are because the URL's are inaccessible. No other parts of DevOps are seeing these kinds of errors.

@bergamin @quasarea @Lariel Can I ask how many repositories you have in the project you are seeing this issue in? We have >600.

We have about ~470 repos in this project.

Created a study environment in my personal Azure Devops account, with one single project and one repo. There the Pull Request Manager Hub works fine 😅 image

Back to my work environment, I switched to another project, it has 4 repos, and PRMH works fine too.

@cribeiro84 for me the issue shows up, inside or outside the corporate network, it seems to be about the number of repos or something. I'll check the azure-devops-extension-api issue list for some ideas. Tks

HED-mstarr commented 1 year ago

In addition to the type of error listed in the original post above (there are multiple occurrences of it listed), I see multiple errors like this one: Fetch.js:116 GET https://dev.azure.com/{account}/_apis/git/repositories/{guid}/pullRequests?searchCriteria.repositoryId=&searchCriteria.creatorId=&searchCriteria.includeLinks=true&searchCriteria.reviewerId=&searchCriteria.sourceRefName=&searchCriteria.sourceRepositoryId=&searchCriteria.status=1&searchCriteria.targetRefName=&maxCommentLength=10&%24top=0 net::ERR_FAILED But accessing that URL (and the URL in the original message) directly in a browser returns a JSON response successfully, so I do not think the errors are because the URL's are inaccessible. No other parts of DevOps are seeing these kinds of errors. @bergamin @quasarea @Lariel Can I ask how many repositories you have in the project you are seeing this issue in? We have >600.

We have about ~470 repos in this project.

Created a study environment in my personal Azure Devops account, with one single project and one repo. There the Pull Request Manager Hub works fine 😅 image

Back to my work environment, I switched to another project, it has 4 repos, and PRMH works fine too.

@cribeiro84 for me the issue shows up, inside or outside the corporate network, it seems to be about the number of repos or something. I'll check the azure-devops-extension-api issue list for some ideas. Tks

For me we have 356 repos in the project showing this issue. This issue occurs inside and outside of the corporate network.

jbingham90 commented 1 year ago

I have seen instances where DevOps will throttle high-volume API traffic, so that could be a possible cause here. According to Chrome dev tools, the hub is making >650 API requests on load. The first ~220 are successful, then ~80 fail, then the remainder are mostly successful with some scattered failures. This page suggests there is a 300 call limit with a 60 second renewal: https://learn.microsoft.com/en-us/connectors/visualstudioteamservices/#limits

That's not exactly the behavior I have seen, since the page loads in seconds and refreshing immediately still has some successes, but a limit might be a factor. The extension appears to make all the API requests in less than a 1 second period. Maybe a short delay between batches of requests when there are >200 repositories would help.

But it also looks like there is an API method that will retrieve pull requests by project rather than by individual repository -- that would eliminate hundreds of API requests and possibly eliminate the issue altogether for any number of repositories.

https://learn.microsoft.com/en-us/rest/api/azure/devops/git/pull-requests/get-pull-requests-by-project?view=azure-devops-rest-7.1&tabs=HTTP

Currently this API method returns 12 pull requests for my project from 9 different repositories.

lktraser commented 11 months ago

I'm experiencing this problem since we have a total of more than 100 open Pull Requests.

Either the list completely fails to load or takes a very long time.

It would be a huge improvement if the list only loaded PRs included in the saved filters initially and then loaded the rest as needed.

KyleKolander commented 10 months ago

Same thing happening here - Windows 10, Edge and Chrome browser, but primarily Edge.

In addition to this, I have been seeing two other issues:

  1. Unable to dismiss the error message

When I click the X to dismiss this error message: image

I get this exception in the console: image

Which corresponds to this code: image

  1. Member avatars don't load

There's a 302 request to a URL like this: https://dev.azure.com/redacted/_apis/GraphProfile/MemberAvatars/aad.REDACTED

that has a location like this: https://spsprodcus2.vssps.visualstudio.com/_signin?realm=dev.azure.com&reply_to=https%3A%2F%2Fdev.azure.com%2Fredacted%2F_apis%2FGraphProfile%2FMemberAvatars%2Faad.REDACTED&redirect=1&hid=redacted&context=redacted

The subsequent redirect request results in a 203 Non-Authoritative Information. Each of the 4 response Set-Cookie headers has a red triangle with exclamation point by it with this message on hover: This attempt to set a cookie via a Set-Cookie header was blocked due to user preferences. image

I was able to resolve this 2nd issue as follows. I'm leaving it here in case someone (probably my future self) runs into this again.

In Edge Settings, navigate to Cookies and site permissions, then to Manage and delete cookies and site data. Then Add the following two patterns to the Allow list: [.]visualstudio.com [.]azure.com image

That pattern could probably be more narrowly scoped, but frankly I'm tired of dinking with it and just glad it works.

KyleKolander commented 10 months ago

Found another issue and the reason for it, so adding it here to help anyone else.

image

I use the AdGuard extension in Edge, and in Options -> Stealth Mode, the Hide Referrer from third parties option was enabled. If I disable this option, the error goes away and the page loads normally. This is repeatable. Solution / work around is to disable this option.

image

If anyone knows a better solution, please let me know.

PS-Nirav-Mistry commented 8 months ago

I'm facing the same issue. IS there any solution available for this ?

Untitled

cribeiro84 commented 8 months ago

Hello, thanks for the information. Did you check on your Developer tools console of your browser what is the error that's being raised? It might be many possibilities. Websocket being blocked, cookies, so on. Have you checked your corporate internet policies?

PS-Nirav-Mistry commented 8 months ago

Let me provide you the HAR file.


From: Carlos Alessandro Ribeiro @.> Sent: Thursday, March 14, 2024 4:23 PM To: cribeiro84/azure-devops-pull-request-hub @.> Cc: Nirav Mistry @.>; Comment @.> Subject: Re: [cribeiro84/azure-devops-pull-request-hub] NetworkException during extension load (Issue #266)

Hello, thanks for the information. Did you check on your Developer tools console of your browser what is the error that's being raised? It might be many possibilities. Websocket being blocked, cookies, so on. Have you checked your corporate internet policies?

— Reply to this email directly, view it on GitHubhttps://github.com/cribeiro84/azure-devops-pull-request-hub/issues/266#issuecomment-1997164013, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BF6C3TNPZ3I6K2FW2JSHMATYYF6Q3AVCNFSM6AAAAAA6S5MMCGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJXGE3DIMBRGM. You are receiving this because you commented.Message ID: @.***>

ClGaExt commented 1 day ago

Same error message "There was an error during the extension load: NetworkException: TF400893: Unable to contact the server. Please check your network connection and try again." within our Azure DevOps project with >1600 repos, >100 teams and many, many active pull requests.

And the "Team" dropdown list isn't showing all of our teams, so entries are missing there as well.

If you open the extension in a small project and with far fewer repos and teams, the app works perfectly within the same Azure DevOps organisation.