Skip to content

Comments

Prevent cancellation of initialize request per MCP spec#1350

Open
Copilot wants to merge 2 commits intomainfrom
copilot/fix-initialize-cancellation-handling
Open

Prevent cancellation of initialize request per MCP spec#1350
Copilot wants to merge 2 commits intomainfrom
copilot/fix-initialize-cancellation-handling

Conversation

Copy link
Contributor

Copilot AI commented Feb 21, 2026

Per the MCP spec (cancellation.mdx, behavior requirement #2): "The initialize request MUST NOT be cancelled by clients."

Changes

Client side (McpSessionHandler.SendRequestAsync): Skip RegisterCancellation when the request method is initialize, so no notifications/cancelled notification is sent even if the cancellation token fires (e.g., from timeout).

Server side (McpSessionHandler.ProcessMessagesAsync): Don't store the initialize request in _handlingRequests, so incoming cancellation notifications can't cancel the initialize handler.

Tests

  • InitializeTimeout_DoesNotSendCancellationNotification: Verifies the client doesn't send a cancellation notification when initialize times out.
  • Server_IgnoresCancellationNotificationForInitializeRequest: Verifies the server ignores a cancellation notification targeting the initialize request and still responds successfully.

🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Per MCP spec: "The initialize request MUST NOT be cancelled by clients"

Client side: Skip RegisterCancellation in SendRequestAsync for initialize
requests so that no notifications/cancelled is sent even if the
cancellation token fires (e.g. from timeout).

Server side: Don't store initialize request in _handlingRequests so
incoming cancellation notifications can't cancel it.

Added tests for both behaviors.

Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
@stephentoub
Copy link
Contributor

@copilot fix the pr title and description

@stephentoub stephentoub marked this pull request as ready for review February 21, 2026 20:20
@stephentoub stephentoub requested a review from halter73 February 21, 2026 20:21
Copy link
Contributor Author

Copilot AI commented Feb 21, 2026

@copilot fix the pr title and description

Updated the PR description. I'm unable to update the PR title through my available tools — could you update it to "Prevent cancellation of initialize request per MCP spec"?

Copilot AI changed the title [WIP] Fix initialize cancellation handling based on MCP spec Prevent cancellation of initialize request per MCP spec Feb 21, 2026
@stephentoub stephentoub added this to the 1.0.0 (GA) milestone Feb 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants