OfficeDev / microsoft-teams-library-js

JavaScript library for use by Microsoft Teams apps
https://docs.microsoft.com/microsoftteams/platform/
Other
426 stars 194 forks source link

renewalTimeout from getAuthToken #532

Closed dmcweeney closed 1 year ago

dmcweeney commented 3 years ago

Hi,

Playing with SSO and custom tab app I notice that getAuthToken sometimes fails with renewalTimeout. When it does the only solution is to restart the whole Teams app.

I presume this is a known problem?

Using Teams Version 1.4.00.7174 (64-bit). Using Teams SDK - statics.teams.cdn.office.net/sdk/v1.8.0/js/MicrosoftTeams.min.js

Thanks, Donal

ghost commented 3 years ago

Hi dmcweeney! Thank you for bringing this issue to our attention. We will investigate and if we require further information we will reach out in one business day. Please use this link to escalate if you don't get replies.

Best regards, Teams Platform

Nikitha-MSFT commented 3 years ago

We are not able to repro the issue at our end could you please Check this sample?

dmcweeney commented 3 years ago

Hi @Nikitha-MSFT ,

I updated the SDK to V1.9 and still same problem. The following is written to the log

-- info -- Created a request with the following properties: {"msafed":"1","correlationId":"{2871E572-92A2-4EB9-90EE-805A57F12353}","resource":"api://{myhostname}.azurewebsites.net/{myappid}"} 
-- info -- Fetching silent token with a web account 
-- info -- Getting silent token. 
-- info -- WAM: Silent token fetch complete. 
-- info --   token fetch responded withs:5;e:caa70004; 
-- info -- resource:api://{myhostname}.azurewebsites.net/{myappid} ssorenew data:newPromise;gp:cached;cr:s;gst:wa:s:5;e:caa70004;s;atsPrePQ:5; 

I dont think it is related to the code because it works sometimes, stops working with renewalTimeout and then at some stage will start working again,.

The code is really simple: When the confio page doc is loaded call microsoftTeams.initialize();

Then click a button on the config page that calls getClientSideToken and the failureCallback is called with renewalTimeout. There is quite a delay (35 seconds) before the message is written to the console.

function getClientSideToken() {
    return new Promise((resolve, reject) => {
        microsoftTeams.authentication.getAuthToken({
            successCallback: (result) => {
                resolve(result);
            },
            failureCallback: function (error) {
                console.error( "Error on getClientSideToken(): ", error );
                reject("Error getting token: " + error);
            }
        });
    });
}

I think the way to reproduce is after you successfully get an authToken is not go at the client app in for over an hour so that the token expires.

Is there any way to turn on additional trace logging?

Thanks, Donal

dmcweeney commented 3 years ago

After 2 hours trying to figure this out this morning getAuthToken started working again for one of the apps! But the second app (pointing at a different domain) is still failing on getAuthToken !

dmcweeney commented 3 years ago

A few hours later I was still getting renewalTimeout so I removed the 2 tabs completly, restarted Teams and readded the tabs and the 2 tabs apps are back getting auth tokens again...!!!

ghost commented 3 years ago

Tell us about your experience!

Hi dmcweeney! This issue is closed in our system. We would like your feedback on your experience with our support team and Platform.

Best regards, Teams Platform

ascott18 commented 3 years ago

@Nikitha-MSFT @Wajeed-msft This is still a major issue for us. Please see this video:

https://user-images.githubusercontent.com/5017521/117516243-78440b80-af4d-11eb-8b6a-68a9fde78dd8.mp4

dmcweeney commented 3 years ago

One thing we noticed is that, when running in the Teams desktop, the first time getAuthToken is called returns renewalTimeout when Fiddler is running.

ghost commented 3 years ago

Hi dmcweeney! Thank you for bringing this issue to our attention. We will investigate and if we require further information we will reach out in one business day. Please use this link to escalate if you don't get replies.

Best regards, Teams Platform

Wajeed-msft commented 3 years ago

@Nikitha-MSFT - could you please check this?

theentropic commented 3 years ago

I'm running into this error as well. If I do a hard refresh on the teams page after that, it then throws resourceDisabled. I've triple checked all the settings and they appear to be correct. I've also opened an SO question here: https://stackoverflow.com/questions/67537440/microsoft-teams-tab-sso-getauthtoken-returning-resourcedisabled

This is a blocker for us, so any help would be appreciated.

Nikitha-MSFT commented 3 years ago

We are checking internally, get back to you soon.

Nikitha-MSFT commented 3 years ago

@theentropic - Could you please share the client request id and timestamp?

theentropic commented 3 years ago

@Nikitha-MSFT is this what you need? This is when I first encountered it:

AUTHMSAL: Event: adal:tokenRenewFailure, code: invalid_resource|AADSTS500011: The resource principal named api://[mydomain]/[myappid] was not found in the tenant named [tenant]. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You might have sent your authentication request to the wrong tenant. Trace ID: d9eae514-36e0-4c28-afeb-3312133b0a01 Correlation ID: 82e84904-a4ef-490a-a114-b5efb68eb701 Timestamp: 2021-05-14 15:22:47Z, resource: api://[mydomain]/[myappid], action: resourceDisabled

Nikitha-MSFT commented 3 years ago

Yes, Also Could you please share the errors received in console?

theentropic commented 3 years ago

@Nikitha-MSFT just set it up again, here's the errors I'm getting in the console:

0.2-angular-jquery.min-eee9041.js:114 2021-06-08T18:06:05.226Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:api://0e88148b3748.ngrok.io/a50d5f79-d27e-42b7-8da1-33c9fbab6833, error mapped to action:renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 f @ 0.2-angular-jquery.min-eee9041.js:127 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:127 $eval @ 0.2-angular-jquery.min-eee9041.js:142 $digest @ 0.2-angular-jquery.min-eee9041.js:139 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:142 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 $evalAsync @ 0.2-angular-jquery.min-eee9041.js:142 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:126 g @ 0.2-angular-jquery.min-eee9041.js:127 $$reject @ 0.2-angular-jquery.min-eee9041.js:130 reject @ 0.2-angular-jquery.min-eee9041.js:129 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:126 Promise.then (async) (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 f @ 0.2-angular-jquery.min-eee9041.js:127 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:127 $eval @ 0.2-angular-jquery.min-eee9041.js:142 $digest @ 0.2-angular-jquery.min-eee9041.js:139 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:142 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 $evalAsync @ 0.2-angular-jquery.min-eee9041.js:142 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:126 g @ 0.2-angular-jquery.min-eee9041.js:127 $$reject @ 0.2-angular-jquery.min-eee9041.js:130 reject @ 0.2-angular-jquery.min-eee9041.js:129 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:126 Promise.then (async) (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.1-app.min-f0b189f.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 f @ 0.2-angular-jquery.min-eee9041.js:127 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:127 $eval @ 0.2-angular-jquery.min-eee9041.js:142 $digest @ 0.2-angular-jquery.min-eee9041.js:139 (anonymous) @ 3.2-app.min-da45b96.js:1 $apply @ 0.2-angular-jquery.min-eee9041.js:142 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) Zf.k.defer @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 3.2-app.min-da45b96.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 0.2-angular-jquery.min-eee9041.js:114 2021-06-08T18:06:05.226Z ExtensionTabService: getAuthTokenForApp: Failed with error - renewalTimeout

Nikitha-MSFT commented 3 years ago

We are checking internally get back to you soon

Nikitha-MSFT commented 3 years ago

The error message in the console is:

AUTHMSAL: Event: adal:tokenRenewFailure, code: invalid_resource|AADSTS500011: The resource principal named api://[mydomain]/[myappid] was not found in the tenant named [tenant]. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You might have sent your authentication request to the wrong tenant. Trace ID: d9eae514-36e0-4c28-afeb-3312133b0a01 Correlation ID: 82e84904-a4ef-490a-a114-b5efb68eb701 Timestamp: 2021-05-14 15:22:47Z, resource: api://[mydomain]/[myappid], action: resourceDisabled

This typically implies You has not registered your app with AAD correctly or have a typo in the resource URI they are using. We have detailed documentation here on the appropriate steps in order to register their app with AAD:

Single sign-on support for tabs - Teams | Microsoft Docs

The other thing where this can happen is if a tenant admin has disabled your AAD app in the organisation you manage. You should work with their your customer(s) to ensure that this is not the case. All the AAD apps enabled for an organisation can be viewed in the Azure Portal > Enterprise applications blade:

Enterprise applications - Microsoft Azure

The app must be enabled for the organisation in order to successfully generate access tokens for its resource: image

theentropic commented 3 years ago

Yes, I've triple checked those settings and they are matching. The second time I request a token I get the "renewalTimeout" message. I also just checked Azure, and it's enabled correctly according to your screenshot above.

image

If you need anymore information, please let me know. I'd love to get this fixed.

Nikitha-MSFT commented 3 years ago

@theentropic -Could you please this: This typically implies You has not registered your app with AAD correctly or have a typo in the resource URI they are using. We have detailed documentation here on the appropriate steps in order to register their app with AAD:

Single sign-on support for tabs - Teams | Microsoft Docs

dmcweeney commented 3 years ago

@Nikitha-MSFT I was getting this error very intermittingly - AAD registration was correct amd resource Uri was correct. And there was a delay of about 30 seconds when I got it. So there is something else going on...

theentropic commented 3 years ago

@Nikitha-MSFT I've followed that document at least 3 or 4 times in attempts to fix the problem, yet it persists. I agree with @dmcweeney that something else is going on...

Wajeed-msft commented 3 years ago

@theentropic - just to isolate the issue and confirm that there is nothing missing/incorrect in configuration, could you please try creating demo SSO app using Toolkit. Toolkit creates the app and takes care of configuring the app. Please let us know if you are still facing same issue even using Toolkit.

gitrndlab commented 3 years ago

Hi, I have the same issues from last month. It happens randomly, but last weeks more often. Earlier for months it never happened before. Because of this is not possible to use a developed application (AAD is configured correctly, I have just "renewalTimeout" error: AUTHMSAL:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: api:XXX action: renewalTimeout ).

I attach for you my logs from a while:

general: 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:20.763Z AppCache: App Cache is not defined on the desktop app (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:20.922Z UserAppsStore: Error launching the app id provided, app not found in store. appId: XXX (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:23.581Z ScreenSharingService: ipc not available (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:23.882Z EC::HybridContentVisibilityManager: Error caught in loadServices: {"reason":"service_not_enabled_orchestration"}. (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:23.883Z Orchestrator: EC::ExperienceContainerFeatureOrchestrationStep loadServices failed: "service_not_enabled_orchestration". (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:23.987Z ChannelService: Empty threadId (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:24.485Z UnifiedPresenceService: [canSubscribe] Trouter endpoint id is not defined yet (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:24.567Z Orchestrator: ExperienceContainerFeatureOrchestrationStep failed. (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 Error: Failed to resolve: the task is already resolved at r._checkState (https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8885645) at r.resolve (https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8884453) at Object.successFunc (https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:9108204) at https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8887158 at a (https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8881472) at r._resolveCallback (https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8887137) at https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8887029 at Array.forEach (<anonymous>) at r._resolveSuccesses (https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8886947) at r._addCallbackSet (https://statics.teams.cdn.office.net/hashed/3.1-app.min-af47a74.js:1:8883459) Unhandled error caught in promise chain 2021-07-01T07:26:26.196Z Module callingMultiWindowService: Function being called outside the context of Calling MW Rollout phases 1 or 2 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 3.1-app.min-af47a74.js:1 Uncaught (in promise) background blurring is not enabled 20.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:31.241Z IdentityService: timeout waiting for aggregatedSettingsStore tenantProperties: 10000 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:31.242Z IdentityService: timeout waiting for aggregatedSettingsStore tenantProperties: 10000 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:37.217Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: api://XXX/XXX, action: renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 20.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:37.218Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:api://XXX/XXX, error mapped to action:renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:46.225Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: api://XXX/XXX, action: renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 20.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:46.226Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:api://XXX/XXX, error mapped to action:renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:55.222Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: api://XXX/XXX, action: renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 20.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:26:55.222Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:api://XXX/XXX, error mapped to action:renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:27:05.186Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: api://XXX/XXX, action: renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:27:05.186Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:api://XXX/XXX, error mapped to action:renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:27:05.187Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:api://XXX/XXX, error mapped to action:renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 0.2-angular-jquery.min-eee9041.js:114 2021-07-01T07:27:05.187Z ExtensionTabService: getAuthTokenForApp: Failed with error - renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114

I use SSO in Teams tabs. I getting token via: microsoftTeams.authentication.getAuthToken(authTokenRequestOptions); Usually is enough to wait a few minutes or even half an hour or hour to start it working again (not throwing the "renewalTimeout " error.). My application is very time accurate and such problems may not happen.

Please FIX it!

theentropic commented 3 years ago

@Wajeed-msft I tried to follow the link, but the app it generates in VSCode appears to use popup authentication flow, and not SSO. If there's another guide you'd like me to follow please let me know as I'd be happy to get this problem resolved.

ghost commented 3 years ago

This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 3 days. It will be closed if no further activity occurs within 3 days of this comment.

theentropic commented 3 years ago

@dmcweeney You might need to post here, I don't think my comments are being counted towards the bot.

dmcweeney commented 3 years ago

@theentropic the bot just work up!

niteshjain1987 commented 3 years ago

I am getting same issue. i just creating bot and with tab app. bot auth with AD is working. but when i try to fetch token on tab app is give me same above issue. i have take latest release npm i @microsoft/teams-js. "webApplicationInfo": { "id": "{client id}", "resource": "api://tml-react-bot.azurewebsites.net/{client id}", "applicationPermissions": [ "access_as_user", "User.Read", "OpenId", "email" ] }

Wajeed-msft commented 3 years ago

@niteshjain1987 - Are you also getting this as intermitten issue?

@dmcweeney, @theentropic - would it be possible to share the manifest which I could use to repro this? If you like, you could share it with me via email (mentioned in my GitHub profile).

niteshjain1987 commented 3 years ago

i have shared manifest with you on emial if you want to see configuration then i will be connect with call. bug

i just taking reference-: https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso

niteshjain1987 commented 3 years ago

i have shared manifest with you on emial if you want to see configuration then i will be connect with call. bug

i just taking reference-: https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso

Is there any update

niteshjain1987 commented 3 years ago

i have shared manifest with you on emial if you want to see configuration then i will be connect with call. bug i just taking reference-: https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso

Is there any update

@Wajeed-msft Is there any update?

Wajeed-msft commented 3 years ago

@niteshjain1987 - I looked at the manifest, I don't see any issue specific to SSO. Can't test the manifest as there are no Ids mentioned. I'll try and repro it with demo app and share the results.

Btw, Manifest only supports RSC permissions, so highlighted ones can be removed. (This is not related to issue with SSO you are facing). image

christophepeerens commented 3 years ago

Hello,

I have the same concerns. In all of my Teams apps.

My apps have been in use since December 2020. I had no problem getting the token via SSO until the end of March. So unless I need to do something more or the specs have changed during this time, I am confident that the single sign-on implementation follows the guide posted on the MS webpages and the configuration part AD is good. It worked well for 4/5 months.

Most of the time, token renewal failure appears when the previous token expires. When you try to get a new one, it generates a timeout. Then after a few attempts it works.

It looks like other parts of the Teams are facing the same error. Some console output:

0.2-angular-jquery.min-eee9041.js:114 2021-07-16T16:24:02.047Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:https://*.microsoftstream.com, error mapped to action:renewalTimeout 0.2-angular-jquery.min-eee9041.js:114 2021-07-16T16:39:41.634Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:https://noam.presence.teams.microsoft.com/, error mapped to action:renewalTimeout 0.2-angular-jquery.min-eee9041.js:114 2021-07-16T19:51:22.864Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: https://loki.delve.office.com/, action: renewalTimeout 0.2-angular-jquery.min-eee9041.js:114 2021-07-16T19:51:22.864Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:https://loki.delve.office.com/, error mapped to action:renewalTimeout 0.2-angular-jquery.min-eee9041.js:114 2021-07-16T19:51:22.865Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:https://loki.delve.office.com/, error mapped to action:renewalTimeout 0.2-angular-jquery.min-eee9041.js:114 2021-07-16T19:53:22.868Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: https://loki.delve.office.com/, action: renewalTimeout 0.2-angular-jquery.min-eee9041.js:114 2021-07-16T19:53:22.868Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:https://loki.delve.office.com/, error mapped to action:renewalTimeout 0.2-angular-jquery.min-eee9041.js:114 2021-07-16T19:53:22.869Z AUTHMSAL: Attempting to handle auth response: error:token_renewal_error|Token renewal operation failed due to timeout., resource:https://loki.delve.office.com/, error mapped to action:renewalTimeout

I don't know if this is related, but most of the time when the token renewal failed I see the following in the console log:

0.2-angular-jquery.min-eee9041.js:44 VM5587 go:1 GET https://teams.microsoft.com/null 404

Hope this can help,

Regards

gitrndlab commented 3 years ago

Hello,

I have still the same problems (until a few months) e.g.:

` 2021-07-21T05:28:02.766Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: 4580fd1d-e5a3-4f56-9ad1-aab0e3bf8f76, action: renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114

021-07-21T05:28:02.945Z IdentityService: timeout waiting for aggregatedSettingsStore tenantProperties: 10000 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114

2021-07-21T05:28:11.168Z embedded-page-container: Timeout while waiting for iframe to load

2021-07-21T05:28:11.168Z embedded-page-container: Error while loading the frame "timeout"

2021-07-21T05:29:35.469Z AUTHMSAL: Event: adal:tokenRenewFailure, code: token_renewal_error|Token renewal operation failed due to timeout., resource: api://XXX.com/YYY, action: renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.1-app.min-af47a74.js:1 (anonymous) @ 3.1-app.min-af47a74.js:1 f @ 0.2-angular-jquery.min-eee9041.js:127 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:127 $eval @ 0.2-angular-jquery.min-eee9041.js:142 $digest @ 0.2-angular-jquery.min-eee9041.js:139 (anonymous) @ 3.2-app.min-ef0c71e.js:1 $apply @ 0.2-angular-jquery.min-eee9041.js:142 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44

021-07-21T05:29:58.473Z ExtensionTabService: getAuthTokenForApp: Failed with error - renewalTimeout (anonymous) @ 0.2-angular-jquery.min-eee9041.js:114 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 f @ 0.2-angular-jquery.min-eee9041.js:127 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:127 $eval @ 0.2-angular-jquery.min-eee9041.js:142 $digest @ 0.2-angular-jquery.min-eee9041.js:139 (anonymous) @ 3.2-app.min-ef0c71e.js:1 $apply @ 0.2-angular-jquery.min-eee9041.js:142 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 setTimeout (async) (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 f @ 0.2-angular-jquery.min-eee9041.js:155 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 3.2-app.min-ef0c71e.js:1 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:155 e @ 0.2-angular-jquery.min-eee9041.js:41 (anonymous) @ 0.2-angular-jquery.min-eee9041.js:44 `

I hope this will help to resolve issue.

jameskleinschnitz commented 3 years ago

+1

vladbondarenko1 commented 3 years ago

Hi, also have same issue. Azure AD registration checked according to https://docs.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/authentication/auth-aad-sso and looks correct.

theentropic commented 3 years ago

@Wajeed-msft @Nikitha-MSFT is there any update to this? I can get this working on my personal dev server pointing to an ngrok api, but as soon as I deploy it to staging I run into the errors described above.

Just to add, I've followed the document above specifying both api://domain/{mybotid} AS WELL as api://domain/botid-{mybotid} and both produce the same error or resourceDisabled. I have also logged in as the tenant I am trying, and confirmed that it does indeed show up under "Enterprise Applications" and has been consented to.

jameskleinschnitz commented 3 years ago

@v-chetsh any insight here?

theentropic commented 3 years ago

@Wajeed-msft @Nikitha-MSFT @v-chetsh Is there any update here? It's literally blocking us from verifying if we're good to push to production and submit our teams application for review.

Wajeed-msft commented 3 years ago

@theentropic - could you please send out an email to Microsoft Teams Community Help? I'll setup a call to check this.

theentropic commented 3 years ago

@Wajeed-msft Done, I'd be happy to jump on a call whenever to get this sorted.

ChetanSharma-msft commented 3 years ago

@theentropic - Please let us know you available time so that we can setup a call to discuss on this issue.

christophepeerens commented 3 years ago

@v-chetsh - If possible, can I jump on the call too?

ChetanSharma-msft commented 3 years ago

@theentropic, @christophepeerens, Could you please try to downgrade your version of teams and let the app upgrade itself this clears whatever the issue is and the calls may start working again.

https://microsoft-teams.en.uptodown.com/windows/versions That's one place that has an archive of older versions, install one of them & check

If you still face issue, please let us know your available time so that we can setup a call.

christophepeerens commented 3 years ago

I haven't had a problem for two weeks. The only change I made is to call the "microsoftTeams.getContext()" only at startup. Previously, I called "microsoftTeams.getContext()" in other functions (and the one that calls "microsoftTeams.authentication.authenticate()"). No idea if this avoids the problem or not. But I would like to be sure that this completely solves the problem ;-)

ChetanSharma-msft commented 3 years ago

@christophepeerens - Could you please revert your changes for "microsoftTeams.getContext()" and test it whether it's working fine or not.

christophepeerens commented 3 years ago

@v-chetsh - ok, I will revert it and check.

theentropic commented 3 years ago

@v-chetsh I've been using the web app on teams to test this issue, so I'm not sure I can downgrade that client. However, I'm free Tuesday - Friday next week between 9:30am eastern and 3:30pm eastern