AzureAD / microsoft-authentication-library-for-js

Microsoft Authentication Library (MSAL) for JS
http://aka.ms/aadv2
MIT License
3.64k stars 2.65k forks source link

Unhandled Promise rejection: endpoints_resolution_error in Firefox #3169

Closed deepti1805 closed 3 years ago

deepti1805 commented 3 years ago

Library

Framework

Description

When we try to login from Firefox we are getting Unhandled Promise rejection: endpoints_resolution_error error. It is working as expected in Chrome.

Error Message

Unhandled Promise rejection: endpoints_resolution_error: Error: could not resolve endpoints. Please check network and try again. Detail: TypeError: NetworkError when attempting to fetch resource. ; Zone: ; Task: Promise.then ; Value: ClientAuthError: endpoints_resolution_error: Error: could not resolve endpoints. Please check network and try again. Detail: TypeError: NetworkError when attempting to fetch resource.

AuthError index.es.js:109

ClientAuthError index.es.js:389

createEndpointDiscoveryIncompleteError index.es.js:426

createDiscoveredInstance index.es.js:5677

step index.es.js:74

verb index.es.js:55

rejected index.es.js:46

Angular 23

sendGetRequestAsync FetchClient.ts:21

step msal-browser.js:80

verb msal-browser.js:61

__awaiter msal-browser.js:54

e Angular

__awaiter msal-browser.js:50

sendGetRequestAsync msal-browser.js:7983

discoverEndpoints index.es.js:2152

step index.es.js:74

verb index.es.js:55

1 index.es.js:48

e Angular

__awaiter$1 index.es.js:44

discoverEndpoints index.es.js:2150

resolveEndpointsAsync index.es.js:2201

step index.es.js:74

verb index.es.js:55

fulfilled index.es.js:45

Angular 2

AuthError@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:216:28 ClientAuthError@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:496:32 ClientAuthError.createEndpointDiscoveryIncompleteError@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:533:20 AuthorityFactory.createDiscoveredInstance/</<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:5784:51 step@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:181:27 verb/<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:162:57 rejected@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:153:61 0TWp/</</s</t.prototype.invoke@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:8483 0TWp/</</a</e.prototype.run@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:3686 A/<@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15150 0TWp/</</s</t.prototype.invokeTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:9167 0TWp/</</a</e.prototype.runTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:4349 g@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:11434 promise callbackv@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:11293 0TWp/</</s</t.prototype.scheduleTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:8988 0TWp/</</a</e.prototype.scheduleTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:4920 0TWp/</</a</e.prototype.scheduleMicroTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:5172 A@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15063 M@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:14328 S/<@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:13498 promise callbackU/t.prototype.then/<@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17213 e@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 U/t.prototype.then@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17191 0TWp/</</t.fetch/</v<@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:18149 0TWp/</</s</t.prototype.scheduleTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:8908 0TWp/</</a</e.prototype.scheduleTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:4920 0TWp/</</a</e.prototype.scheduleMacroTask@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:5273 0TWp/</</t.fetch/<@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17956 e@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 0TWp/</</t.fetch@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17914 FetchClient.prototype.sendGetRequestAsync/</<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:7987:54 step@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:80:27 verb/<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:61:57 awaiter/<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:54:75 e@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 awaiter@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:50:16 FetchClient.prototype.sendGetRequestAsync@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:7983:20 Authority.prototype.discoverEndpoints/</<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:2259:65 step@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:181:27 verb/<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:162:57 awaiter$1/<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:155:75 e@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 awaiter$1@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:151:16 Authority.prototype.discoverEndpoints@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:2257:20 Authority.prototype.resolveEndpointsAsync/</<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:2308:55 step@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:181:27 verb/<@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:162:57 fulfilled@https://alcdn.msauth.net/browser/2.6.1/js/msal-browser.js:152:62 0TWp/</</s</t.prototype.invoke@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:8483 0TWp/</</a</e.prototype.run@https://aemstage.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:3686

MSAL Configuration

// Provide configuration values here.
// For Azure B2C issues, please include your policies.

Reproduction steps

1) Go to https://www.amtrak.com/tickets/travelers.html 2) Try to login from inline signin not from header. 3) open inspector tool and you will be able to see this error. Note : Error is coming only in the case of inline signin and in Firefox.

// Provide relevant code snippets here.
// For Azure B2C issues, please include your policies.

Expected behavior

It should work in Firefox as well

Identity Provider

Browsers/Environment

Regression

Security

Source

tnorling commented 3 years ago

@deepti1805 Can you please try upgrading to the latest version 2.12.0 and let us know if this is still happening?

deepti1805 commented 3 years ago

@tnorling I am still getting this error-

Unhandled Promise rejection: endpoints_resolution_error: Error: could not resolve endpoints. Please check network and try again. Detail: ClientAuthError: openid_config_error: Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints. Attempted to retrieve endpoints from: https://amtrakb2csandbox.b2clogin.com/amtrakb2csandbox.onmic…a_webapp_signin_signup/v2.0/.well-known/openid-configuration ; Zone: ; Task: Promise.then ; Value: ClientAuthError: endpoints_resolution_error: Error: could not resolve endpoints. Please check network and try again. Detail: ClientAuthError: openid_config_error: Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints. Attempted to retrieve endpoints from: https://amtrakb2csandbox.b2clogin.com/amtrakb2csandbox.onmic…a_webapp_signin_signup/v2.0/.well-known/openid-configuration AuthError index.es.js:422 ClientAuthError index.es.js:658 createEndpointDiscoveryIncompleteError index.es.js:695 createDiscoveredInstance index.es.js:6110 step index.es.js:75 verb index.es.js:56 rejected index.es.js:47 Angular 23 sendGetRequestAsync FetchClient.ts:21 step msal-browser.js:81 verb msal-browser.js:62 awaiter msal-browser.js:55 e Angular awaiter msal-browser.js:51 sendGetRequestAsync msal-browser.js:8739 getEndpointMetadataFromNetwork index.es.js:5916 step index.es.js:75 verb index.es.js:56 1 index.es.js:49 e Angular awaiter$1 index.es.js:45 getEndpointMetadataFromNetwork index.es.js:5910 updateEndpointMetadata index.es.js:5868 step index.es.js:75 verb index.es.js:56 1 index.es.js:49 e Angular awaiter$1 index.es.js:45 AuthError@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:530:28 ClientAuthError@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:766:32 ClientAuthError.createEndpointDiscoveryIncompleteError@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:803:20 AuthorityFactory.createDiscoveredInstance/</<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:6218:51 step@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:183:27 verb/<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:164:57 rejected@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:155:61 0TWp/</</s</t.prototype.invoke@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:8483 0TWp/</</a</e.prototype.run@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:3686 A/<@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15150 0TWp/</</s</t.prototype.invokeTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:9167 0TWp/</</a</e.prototype.runTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:4349 g@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:11434 promise callbackv@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:11293 0TWp/</</s</t.prototype.scheduleTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:8988 0TWp/</</a</e.prototype.scheduleTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:4920 0TWp/</</a</e.prototype.scheduleMicroTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:5172 A@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15063 M@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:14328 S/<@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:13498 promise callbackU/t.prototype.then/<@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17213 e@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 U/t.prototype.then@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17191 0TWp/</</t.fetch/</v<@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:18149 0TWp/</</s</t.prototype.scheduleTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:8908 0TWp/</</a</e.prototype.scheduleTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:4920 0TWp/</</a</e.prototype.scheduleMacroTask@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:5273 0TWp/</</t.fetch/<@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17956 e@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 0TWp/</</t.fetch@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:17914 FetchClient.prototype.sendGetRequestAsync/</<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:8743:54 step@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:81:27 verb/<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:62:57 awaiter/<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:55:75 e@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 awaiter@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:51:16 FetchClient.prototype.sendGetRequestAsync@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:8739:20 Authority.prototype.getEndpointMetadataFromNetwork/</<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:6024:72 step@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:183:27 verb/<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:164:57 awaiter$1/<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:157:75 e@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 awaiter$1@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:153:16 Authority.prototype.getEndpointMetadataFromNetwork@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:6018:20 Authority.prototype.updateEndpointMetadata/</<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:5976:55 step@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:183:27 verb/<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:164:57 awaiter$1/<@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:157:75 e@https://aemdev.amtrak.com/etc/designs/tickets/angular/polyfills.846476a97296d363494942f20972558b.js:1:15354 awaiter$1@https://alcdn.msauth.net/browser/2.12.0/js/msal-browser.js:153:16

tnorling commented 3 years ago

@deepti1805 Can you try opening the url in the error message in a new tab in your firefox browser? Can you confirm that it opens a page with a json structure similar to: https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration

deepti1805 commented 3 years ago

@tnorling It seems to be similar structure.

tnorling commented 3 years ago

@deepti1805 I followed the repro steps you shared above and I'm seeing in the network tab your app is making 2 simultaneous calls to loginRedirect. One request appears to be cancelling the other which is resulting in the error you're seeing. Can you try to determine why your app is calling loginRedirect multiple times?

deepti1805 commented 3 years ago

@tnorling ok I got your point but still we can see this issue in firefox only. This is working absolutely correct in Chrome.

tnorling commented 3 years ago

@deepti1805 Even in chrome I am seeing your app make 2 calls. The timing between Chrome and Firefox may be slightly different which is why you're seeing the error in Firefox but not Chrome. In Chrome you'll see a cancelled /authorize call instead of the /openid-configuration call. The cancelled /authorize call does not throw an error because it's a redirect and the 2nd one causes the page to leave, whereas, the /openid-configuration call is a GET request which throws this error. The solution in this case for both Firefox and Chrome is to ensure that your app is only calling loginRedirect once.

deepti1805 commented 3 years ago

@tnorling Thanks for your information. I am working on it.

github-actions[bot] commented 3 years ago

This issue has not seen activity in 14 days. If your issue has not been resolved please leave a comment to keep this open. It will be closed in 7 days if it remains stale.

github-actions[bot] commented 3 years ago

This issue has been closed due to inactivity. If this has not been resolved please open a new issue. Thanks!