Repository navigation
Release 2.2.1: cherry-pick Socket Mode routing fixes - #731
Merged
teddy arida-moody (teddyam) merged 3 commits intoNov 10, 2026
Merged
Conversation
## Summary
- Route Socket Mode connect/negotiate requests through
`{geo}.botapi.skype.com` instead of `botapi.skype.com/{geo}`, matching
microsoft/teams.py#676.
- Remove the configurable endpoint override
(`SocketModeOptions.NegotiateBaseUrl`); only `Geos` remains
configurable.
- An empty geo list (`Geos = []`) uses the defaults: `amer`, `emea`, and
`apac`. An empty geo string (`Geos = [""]`, or an empty string within a
non-empty list) is rejected; it no longer bypasses geo-specific routing.
- Log each resolved connect/negotiate URL at Information during startup
so it appears with the sample's default logging configuration.
- Update routing coverage and documentation. Authentication scopes,
returned SignalR URLs, and other API calls remain unchanged.
## Public API change
- Removing `SocketModeOptions.NegotiateBaseUrl` is a source-breaking
change for callers that set the endpoint override. Remove that
assignment and use `Geos` to select the connections instead; custom
endpoint overrides are no longer supported.
- Callers using an empty string to connect without a geo must select a
geo instead, or use an empty list to connect to all three defaults. An
empty list and an empty string have different behavior: `[]` uses
defaults; `[""]` is rejected.
## Validation
- Socket Mode tests passed on .NET 8 and .NET 10: 224 tests per
framework.
- User verified the production geo routing locally with the
SocketModeBot sample.
---------
Co-authored-by: Teddy Arida-Moody <teddyam@Teddys-MacBook-Pro.local>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
(cherry picked from commit 9af1000)
Socket Mode should not expose its temporary negotiation endpoint through a public diagnostic API. Geo names that differ only by case also resolve to the same hostname and must not create independently supervised connections to that host. ## Changes - Remove `SocketModeObserver.NegotiateUrl` and its unused internal getter, along with related documentation and assertions. Connection behavior and startup URL logging are unchanged. External callers using this experimental property must remove that usage. - Reject duplicate geos using ordinal, case-insensitive comparison while preserving support for individual uppercase geo names and their diagnostic casing. - Move `["amer", "AMER"]` into rejection coverage and retain a successful single-geo `"AMER"` case. Document the uniqueness requirement. ## Validation - Confirmed the mixed-case duplicate regression fails before the fix on both target frameworks. - All 225 Socket Mode tests pass on .NET 8 and .NET 10. Co-authored-by: Teddy Arida-Moody <teddyam@Teddys-MacBook-Pro.local> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> (cherry picked from commit c9a905a)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Lily Du (lilyydu)
approved these changes
Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
9af1000b683430056937961d763a4785f8167640): fix geo-specific Socket Mode negotiation hostnames, remove the endpoint override, and correct empty-geo handling.c9a905a6d691ed4c0baf70548e6587a16c5799f7): remove the public negotiation URL diagnostic and reject case-insensitive duplicate geos.2.2.0to2.2.1.Based on
releases/core; excludes unrelatedmainchanges. Both fixes were cherry-picked without conflicts and retain source commit references.Validation
git diff --checkpasses.Release
After approval and merge, run
Teams.NET-ESRPfromreleases/corewithpublishType=Public. No publishing pipeline or release tag has been triggered or created.