Azure MCP server fails sending HTTP request

Aperta
#4,851 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

Inizia riproducendo la richiesta al registro Azure MCP con Copilot CLI 1.0.83, quindi esamina il percorso nativo della richiesta Rust reqwest 0.13.4/hyper e il relativo backend TLS durante una rinegoziazione ritardata del certificato client TLS 1.2. Il lavoro è completato quando il registro restituisce correttamente una risposta invece di BrokenPipe, con copertura per questo flusso TLS specifico dell’endpoint.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

triage
Describe the bug

This broke overnight. We've been using the same Azure MCP registry for months fine.

Copilot CLI Rust runtime fails with BrokenPipe when validating Azure API Center MCP registry.

GitHub Copilot CLI 1.0.83 cannot validate MCP servers against an Azure API Center registry when enterprise MCP access is configured as Registry only.

The CLI connects successfully to the registry IP, but its native Rust runtime fails before receiving an HTTP response:

[rust:log] starting new connection 'Some("...azure-apicenter.ms")'
[rust:hyper_util::client::legacy::connect::http] connected to ...:443
[rust:hyper_util::client::legacy::client] client connection error:
hyper::Error(Shutdown, Os {
  code: 32,
  kind: BrokenPipe,
  message: "Broken pipe"
})

The same exact registry endpoints return HTTP 200 using both curl and Node.js fetch on the same machine.

A verbose curl trace shows that after the GET request is sent, the Azure endpoint initiates TLS 1.2 renegotiation and requests a client certificate:

Request completely sent off
TLSv1.2 (IN), TLS handshake, Hello request
TLSv1.2 (IN), TLS handshake, Request CERT
HTTP/1.1 200 OK

Copilot CLI logs show that registry requests use the native Rust runtime, specifically reqwest 0.13.4/hyper, rather than Node fetch. The Rust request terminates with BrokenPipe during this endpoint-specific TLS flow.

Please investigate compatibility between the Copilot CLI native runtime’s TLS backend and delayed TLS 1.2 client-certificate renegotiation.

Affected version

GitHub Copilot CLI 1.0.83

Steps to reproduce the behavior

Use GitHub Enterprise (Cloud) and GitHub Copilot Enterprise.

  1. have an Azure MCP registry setup.
  2. Enter the Azure URL into the MCP Registry URL
  3. Select "Registry Only" for "Restrict MCP access to registry servers"
  4. See a Failed to load registry: Error: HTTP request failed: error sending request for url ( <redacted> ) error message
Expected behavior

MCP registry support works

Additional context

macOS, MBP Pro ARM, iTerm2

Lingua principale
Shell
Stelle
11.2k
Fork
1.9k
Merge medio
14h 16m
PR unite (30g)
6

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di github/copilot-cli

Tutte le issue di github/copilot-cli

Issue simili

Altre issue su Shell/Bash

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.