A hint that Microsoft will provide controls to allow customers to roll out the new Teams client at their own rate is in the PowerShell Get-CsTeamsUpdateManagementPolicy cmdlet. This reveals a UseNewTeamsClient setting. Microsoft added the setting in version 4.9.1 of the MicrosoftTeams PowerShell module in November 2022. The values accepted by the Set-CsTeamsUpdateManagementPolicy cmdlet are:
MicrosoftChoice: Microsoft controls the use of the new client. This is likely how Microsoft will force customers to eventually move from the old to the new client.
UserChoice: Individual users can choose to use the new client.
AdminDisabled: The organization disables the new client for users assigned the policy.
The interpretations of the options are mine and are not formally confirmed by Microsoft. The point is that it will be possible for organizations to control when users get the new client and which users get the new client.
Building a New Teams Architecture
Microsoft has been working on the new Teams client architecture for a long time. Some hints came in my May 2021 discussion with Rish Tandon (the then VP for Teams Engineering). At the time, Rish acknowledged that client performance wasn’t where Microsoft wanted it to be. A further hint came when Microsoft revealed the Teams consumer client for Windows 11. The consumer client uses the new Teams client architecture based on ReactJS and the WebView2 Edge component.
Of course, the Teams consumer client is a pale shadow of its enterprise counterpart when it comes to features and functionality, as people will discover when they move from Teams Free (classic) to the new Teams (free) version. There are no channels to deal with (regular, private, or shared), the number of users is limited, there’s no Phone system or Teams room devices, and so on. Acknowledging these limitations, the Teams consumer client (2.0 in the architecture) proved a useful step to proving the concepts and components used in the next generation of the Teams enterprise client (2.1).
Microsoft’s recent press briefings have emphasized benchmarks like a 50% reduction in memory, less demand for CPU, and a consequent extended battery life for laptops. Cynics might say that all of this comes from removing the overhead imposed by Electron. Certainly there’s some truth in that assertion but the overall engineering effort required to move the Teams desktop and browser clients to the new architecture spans more than simply swapping code libraries.
When Production Software Arrives
After running the public preview for the new version of the Teams client for several months, Microsoft will make the client generally available (GA). At that point, a recent change will affect when organizations see the GA software.
Microsoft 365 message center notification MC510331 (February 2, Microsoft 365 roadmap item 117577) announced that Teams will support targeted release for commercial cloud customers. In other words, if your tenant opts in to use targeted release for some or all users, you’ll be amongst the first to get the new Teams client. Release preferences are in the Org settings section of the Microsoft 365 admin center (Figure 1).
Figure 1: Release options for a Microsoft 365 tenant
Those who choose to remain with the standard release will receive the software later. Given the size of the Microsoft 365 infrastructure, the difference between first and last tenants receiving the new client could be several months.
A Big Moment Approaches for Teams
People have complained about the performance and memory consumption of the Teams client for years. Despite much tweaking and filling in performance gaps since 2016, it’s obvious that the road has run out for the original Teams client. Launching a new Teams client is an important point for Microsoft. They only have 280 million monthly active users to please. No pressure then!
Support the work of the Office 365 for IT Pros team by subscribing to the Office 365 for IT Pros eBook. Your support pays for the time we need to track, analyze, and document the changing world of Microsoft 365 and Office 365.
I asked Microsoft about the site you pointed to. Their response is that it’s an internal method to distribute Teams builds. You won’t be able to install the new release unless you’re on an authorized list (Microsoft employee or TAP participant).
You need to double-click on the “config-prod-XXXXXXXXXXXX.js” request and then right-click and select “Unlock for Editing” and then go to SyntaxView or TextView. Copy everything from Pastebin and then paste it into the SyntaxView or TestView. Please make sure to remove everything from SyntaxView/TextView first before pasting the entire text from Pastebin.
An easiest way to get “config-prod-XXXXXXXXXXXX.js” to show up in Fiddler is use Incognito Mode on your browser and then go to https://teams.microsoft.com/v2
On Fiddler, please make sure that “Enable rules” and “Unmatched requests passthrough” are both selected.
Loading...
Hi Coral, I was wondering if you are willing to get in touch with me on Twitter to help me out here. Fiddler’s not exactly my thing 😅
Loading...
No luck with Fiddler, tried both methods… :-/
Loading...
To confirm Teams 2.1 will be rolled out as such?
Currently – Microsoft/Tap (presumably).
End of March – Public Preview controlled through Teams Admin Center update policies.
Future – Targeted Release users in the tenant.
Im working wih teams v2 here: https://teams.microsoft.com/v2 using overwrite source functionallity in browser (this case with Chrome). The sollution is easy:
– Ovewrite file config-prod-xxx.js with disableExperience:[{buildType:[“local”],value:!1},{value:!1}]
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
Teams 2.1 could be found here?
https://github.com/ItzLevvie/MicrosoftTeams-msinternal/blob/master/defconfig2
I asked Microsoft about the site you pointed to. Their response is that it’s an internal method to distribute Teams builds. You won’t be able to install the new release unless you’re on an authorized list (Microsoft employee or TAP participant).
Installing isn’t the problem, and even logging in isn’t, but logging in all the way is:
https://i.imgur.com/yAt6aGK.png
It’s certainly interesting seeing all those WebView2 processes in memory relating to Teams though.
It can be bypassed though so whatever “authorization” they’re doing clearly isn’t working.
1) Open Telerik Fiddler Classic on your PC
2) Go to https://teams.microsoft.com/v2 in Google Chrome or your browser of choice.
3) Find https://statics.teams.cdn.office.net/teams-modular-packages/hashed-assets/config-prod-d3abb3d5b68294df.js in Fiddler where d3abb3d5b68294df might be different for you but you can search for “config-prod” in Fiddler and you should get it.
4) Go back to Fiddler and click on the AutoResponder tab.
5) Click “Enable rules” & “Unmatched requests passthrough”
6) Find config-prod-d3abb3d5b68294df.js in Fiddler and then double-click on it
7) Right-click on config-prod-d3abb3d5b68294df.js and then select “Unlock for Editing”
8) Find “disableExperience:[{buildType:[“local”],value:!1},{value:!0}]” and then replace it with “disableExperience:[{buildType:[“local”],value:!1},{value:!1}]”
9) Drag https://statics.teams.cdn.office.net/teams-modular-packages/hashed-assets/config-prod-d3abb3d5b68294df.js to AutoResponder and you’re good to go.
10) You can open https://teams.microsoft.com/v2 and it’ll work + the Teams 2.1 client will also work too.
I downloaded https://staticsint.teams.cdn.office.net/production-windows-x64/23074.3100.1942.6340/MSTeams-x64.msix from https://github.com/ItzLevvie/MicrosoftTeams-msinternal/blob/master/defconfig2#L18 as proof.
Picture @ https://i.imgur.com/UrkkQoQ.png
I pointed this all out to the folks at Microsoft but they said that they wanted to continue doing what they’re doing…
@coral, I tried your instructions but it didn’t work, after the JS trick when I reload the page a get an error “Oops, app failed to init!”
@nickmaleao: I pasted the whole file on https://pastebin.com/raw/yHtucF30 which should make this a bit more easier.
You need to double-click on the “config-prod-XXXXXXXXXXXX.js” request and then right-click and select “Unlock for Editing” and then go to SyntaxView or TextView. Copy everything from Pastebin and then paste it into the SyntaxView or TestView. Please make sure to remove everything from SyntaxView/TextView first before pasting the entire text from Pastebin.
An easiest way to get “config-prod-XXXXXXXXXXXX.js” to show up in Fiddler is use Incognito Mode on your browser and then go to https://teams.microsoft.com/v2
On Fiddler, please make sure that “Enable rules” and “Unmatched requests passthrough” are both selected.
Hi Coral, I was wondering if you are willing to get in touch with me on Twitter to help me out here. Fiddler’s not exactly my thing 😅
No luck with Fiddler, tried both methods… :-/
To confirm Teams 2.1 will be rolled out as such?
Currently – Microsoft/Tap (presumably).
End of March – Public Preview controlled through Teams Admin Center update policies.
Future – Targeted Release users in the tenant.
I couldn’t comment about dates but the deployment technique you outline is plausible.
On Mac I was able to access the v2 in a browser but not in the client. Is the setup different?
You’d need the Mac 2.1 client. I’m not sure if it’s available yet (I don’t use Mac and have only ever used the 2.1 client on Windows 11).
Im working wih teams v2 here: https://teams.microsoft.com/v2 using overwrite source functionallity in browser (this case with Chrome). The sollution is easy:
– Ovewrite file config-prod-xxx.js with disableExperience:[{buildType:[“local”],value:!1},{value:!1}]