# 깃허브 코파일럿 Language model unavailable 해결: 로그로 원인 가르기

> VS Code가 Copilot 기본 모델을 받아오지 못했다는 증상입니다. GitHub Copilot Chat 출력 로그와 GitHub Status로 장애·회사망·플랜 중 원인부터 가르세요.

- URL: https://blog.laozhang.ai/ko/posts/github-copilot-language-model-unavailable
- Published: 2026-11-04
- Updated: 2026-11-04
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ko/about)
- Topic: 문제 해결
- Tags: GitHub Copilot, 깃허브 코파일럿, VS Code, Language model unavailable, Copilot Chat, 문제 해결

---
VS Code에서 깃허브 코파일럿(GitHub Copilot) 채팅에 프롬프트를 보냈는데 답 대신 "Language model unavailable"만 뜬다면, VS Code가 Copilot의 기본 모델을 하나도 받아오지 못했다는 뜻입니다. 2026년 11월 4일 기준 VS Code 소스 코드를 보면, 사용자가 모델을 따로 고르지 않은 요청에서 기본 Copilot 모델을 찾지 못할 때 이 문장을 그대로 던집니다. 메시지 자체는 원인을 말해 주지 않으므로 재설치보다 원인을 가리는 것이 먼저입니다.

지금 할 일은 세 군데를 보는 것입니다. [GitHub Status 페이지](https://www.githubstatus.com)에서 Copilot 장애가 있는지 확인하고, VS Code 출력 패널에서 **GitHub Copilot Chat** 채널을 열어 `Failed to fetch models`로 시작하는 줄을 찾고, 명령 팔레트에서 "Chat Diagnostics"를 실행해 실패한 연결이 있는지 봅니다. 이 세 가지로 GitHub 장애, 회사 네트워크 차단, 플랜·라이선스 문제 중 어디에 해당하는지 대부분 가려집니다.

스스로 고칠 수 없는 경우도 있습니다. GitHub 쪽 장애라면 복구를 기다린 뒤 창을 다시 로드하는 수밖에 없고, 회사 네트워크가 개인 플랜용 `*.individual.githubcopilot.com` 도메인을 막고 있다면 IT 부서에 허용을 요청해야 합니다. 그동안 작업을 이어가야 한다면 자기 API 키로 모델을 연결하는 BYOK 방식이 채팅만큼은 대신할 수 있습니다.

## Language model unavailable 뜻: 기본 Copilot 모델이 등록되지 않은 상태

이 메시지는 Copilot 확장이 서버에서 모델 목록을 받아 VS Code에 등록하는 단계가 실패했고, 그 결과 기본 모델 자리가 비어 있다는 증상입니다. VS Code의 [extHostLanguageModels.ts](https://github.com/microsoft/vscode/blob/main/src/vs/workbench/api/common/extHostLanguageModels.ts)는 채팅 요청이 들어오면 사용자가 모델 선택기에서 직접 고른 모델이 있는지 먼저 보고, 없으면 채팅용 Copilot 기본 모델을 찾습니다. 이 기본 모델이 없을 때 `throw new Error('Language model unavailable')`가 실행됩니다. 모델 선택기가 비어 있거나 "Auto"만 남아 있는 것도 같은 현상의 다른 모습입니다.

한국어 UI에서도 영어로 나오는 이유는 이 문장이 번역 함수(`localize`)를 거치지 않는 고정 문자열이기 때문입니다. 그래서 검색할 때도 영어 원문 그대로 찾는 편이 정확합니다. Reddit 글을 Google 번역으로 보면 "언어 모델을 사용할 수 없음"이라는 표현이 보이지만, VS Code 화면에 그런 한국어 문구가 나오지는 않습니다.

비슷하지만 방향이 다른 메시지도 있습니다. VS Code 1.141.0(2026년 10월 7일 출시)부터는 선택기에서 직접 고른 모델이 사라졌을 때 "The selected model '…' is not available. Select a different model and try again."이 나옵니다([PR #339307](https://github.com/microsoft/vscode/pull/339307)). 그 전 버전은 이 경우 조용히 Auto로 돌아갔습니다. 이 메시지라면 고른 모델 하나만 없어진 것이므로 다른 모델이나 Auto를 고르면 되지만, Language model unavailable은 기본 모델 전체가 없는 상태라 선택기에서 모델을 바꿔도 해결되지 않습니다.

원인을 고친 뒤에는 기다리지 말고 **Developer: Reload Window**로 창을 다시 로드하는 것이 좋습니다. Copilot 확장의 [modelMetadataFetcher.ts](https://github.com/microsoft/vscode/blob/main/extensions/copilot/src/platform/endpoint/node/modelMetadataFetcher.ts)는 모델 목록을 기본적으로 10분에 한 번까지만 새로 받고, 창이 비활성 상태일 때는 받지 않기 때문입니다.

## 원인을 가르는 세 곳: 출력 로그, Chat Diagnostics, GitHub Status

원인을 가장 직접적으로 알려 주는 것은 출력 패널의 로그 한 줄입니다. 그 전에 GitHub Status에서 Copilot이나 Copilot AI Model Providers 항목이 정상(Operational)이 아니라면 GitHub 쪽 장애이므로, 다른 조치 없이 복구를 기다린 뒤 창을 다시 로드하면 됩니다.

장애가 아니라면 로그 수준을 올려 실패하는 순간을 기록합니다. 명령 팔레트는 Windows·Linux에서 `Ctrl+Shift+P`, macOS에서 `Cmd+Shift+P`로 열고, 한국어 UI에서도 영어 명령 이름을 입력하면 찾을 수 있습니다.

1. **Developer: Set Log Level**을 실행해 GitHub Copilot과 GitHub Copilot Chat을 **Trace**로 바꿉니다.
2. **Developer: Reload Window**로 창을 다시 로드한 뒤 채팅에 프롬프트를 한 번 보냅니다.
3. **Output: Show Output Channels**에서 **GitHub Copilot Chat**을 고르고 `Failed to fetch models`, `403`, `ERR_`, `TypeError`가 들어간 줄을 찾습니다.
4. 확인이 끝나면 로그 수준을 원래대로 돌려놓습니다.

모델 목록을 못 받으면 Copilot Chat 로그에 `Failed to fetch models (요청 ID): …` 형태의 줄이 남고, 콜론 뒤에 서버가 돌려준 응답 본문이나 HTTP 상태가 붙습니다. 판단의 근거는 이 콜론 뒤 부분입니다. GitHub 상태 API가 장애를 알리고 있으면 같은 자리에 "Error fetching models! It appears that GitHub is experiencing an outage."가 찍힙니다. 반대로 Copilot 토큰 자체를 받지 못했다면, 예를 들어 로그인이 풀렸다면 확장은 모델 목록 요청을 아예 보내지 않으므로 이 줄이 없을 수 있습니다. 이때는 네트워크보다 계정 쪽을 먼저 봅니다. Auto 모드의 엔드포인트 목록이 비면 `No auto mode endpoints provided.`도 함께 나오는데, 이것은 결과일 뿐이니 그 위에 있는 줄을 읽어야 합니다.

두 번째로 명령 팔레트에서 "Chat Diagnostics"를 검색해 실행합니다. 명령 앞에 붙는 접두어는 버전에 따라 "GitHub Copilot:" 또는 "Developer:"로 달라서 이름 끝부분으로 찾는 편이 확실합니다. 보고서는 편집기 탭으로 열리고, Copilot이 쓰는 주소마다 DNS 조회 결과, Copilot이 실제로 사용하는 프록시(Proxy URL), 세 가지 연결 방식의 HTTP 상태가 나옵니다. 아래는 GitHub 이슈 [#309766](https://github.com/microsoft/vscode/issues/309766)에 올라온 보고서의 일부로, IPv6 조회는 실패했지만 세 방식 모두 HTTP 200이라 이 주소로의 연결은 정상입니다.

```text
Connecting to https://api.individual.githubcopilot.com/_ping:
- DNS ipv4 Lookup: 140.82.114.21 (9 ms)
- DNS ipv6 Lookup: Error (10 ms): getaddrinfo ENOTFOUND api.individual.githubcopilot.com
- Proxy URL: None (19 ms)
- Electron fetch (configured): HTTP 200 (114 ms)
- Node.js https: HTTP 200 (365 ms)
- Node.js fetch: HTTP 200 (361 ms)
```

[VS Code 문제 해결 문서](https://github.com/microsoft/vscode-docs/blob/main/docs/agents/agent-troubleshooting/troubleshooting.md)는 실패 항목이 없는 보고서라도 보고서가 확인한 연결만 문제가 없다는 뜻이라고 설명합니다. 로그와 보고서에는 코드나 프롬프트가 섞일 수 있으므로 이슈에 붙이기 전에 민감한 내용을 지워야 합니다.

## 보이는 증거별 원인과 조치 판정표

앞에서 모은 증거를 아래 표의 왼쪽 열과 맞춰 보면 원인과 다음 조치가 정해집니다. 같은 오류 문장이라도 원인마다 손댈 곳이 전혀 다르기 때문에, 한 줄이라도 일치하는 행부터 처리합니다.

| 보이는 것 | 확인한 곳 | 가능성이 높은 원인 | 조치 |
|---|---|---|---|
| Copilot 항목에 장애 표시, 또는 로그에 `It appears that GitHub is experiencing an outage` | GitHub Status, 출력 로그 | GitHub 장애(2026년 1월 13일, 8월 17일 사례) | 복구 후 Reload Window, 그래도 안 되면 VS Code 재시작 |
| `Failed to fetch models` 뒤에 시간 초과, `ENETUNREACH`, `ECONNREFUSED`, 인증서 오류 | 출력 로그, Chat Diagnostics | 방화벽·프록시·VPN이 Copilot 도메인을 막음 | curl로 도달 여부 확인 후 IT 요청 |
| 개인 계정인데 회사망에서만 실패하고 휴대폰 핫스폿에서는 됨 | 네트워크를 바꿔 재시도 | 회사가 자기 플랜 도메인만 허용 | 회사 시트 계정으로 로그인하거나 IT 요청 |
| `403`과 "not licensed to use Copilot", 선택기가 "Local"에 멈춤, 체험판 사용 중 | 출력 로그, GitHub 설정·결제 페이지 | 플랜·라이선스·결제 상태 | 계정·결제 확인 |
| VS Code 버전이 몇 달 전 것 (예: 1.106~1.109) | 정보(About) 창 | 최신 Copilot Chat과 버전 불일치 | VS Code 업데이트 |
| 로컬 주소로 가는 `net::ERR_CONNECTION_REFUSED`, `unable to validate HMAC` | 출력 로그, settings.json | 예전에 넣은 Copilot 주소 덮어쓰기 설정 | 해당 설정 삭제 후 Reload Window |
| `TypeError: e is not iterable` | 출력 로그 | 다른 AI 도구의 skills 폴더 읽기 실패 | 두 폴더 이름 바꾸기 |
| `Failed to fetch models` 줄이 아예 없음, 회사 계정이 로그인돼 있음 | 왼쪽 아래 계정 아이콘 | 로그인 풀림 또는 다른 계정 | 로그아웃 후 다시 로그인 |

VS Code 메인테이너는 메타 이슈 [#253137 "Meta: Language Model Unavailable"](https://github.com/microsoft/vscode/issues/253137)에서 회사 네트워크가 새 Copilot 엔드포인트를 막는 것을 가장 흔한 원인으로 꼽았고, 2025년 4월에는 "거의 항상 클라이언트 쪽 네트워크 설정 문제"라고 적었습니다. 다만 2026년에 올라온 보고에는 장애, 체험판·라이선스, 오래된 VS Code가 원인인 경우도 많습니다. 그러니 로그에서 일치하는 줄을 찾지 못했을 때만 네트워크부터 확인하는 순서가 맞습니다.

![GitHub Status, Copilot Chat 로그의 Failed to fetch models 줄, 콜론 뒤 내용 순서로 확인해 GitHub 장애, 로그인 문제, 회사망 차단, 플랜·라이선스, 남은 설정, skills 폴더 중 원인을 고르는 판단 흐름](https://blog.laozhang.ai/posts/ko/github-copilot-language-model-unavailable/img/cause-decision-flow.webp)

## curl로 Copilot 엔드포인트 도달 여부 확인하기

인증 없이 Copilot 주소에 요청을 보내 401, 400, 200 중 하나가 돌아오면 네트워크는 Copilot 서버까지 닿고 있는 것입니다. 시간 초과, 연결 거부, 낯선 발급자의 인증서가 나오면 그 사이 어딘가에서 막히고 있습니다. 터미널에서 아래 순서로 실행합니다. Windows PowerShell에서는 `curl` 대신 `curl.exe`를 입력해야 실제 curl이 실행됩니다.

1. 개인 플랜 엔드포인트의 응답을 확인합니다. 정상이면 `OK`가 나옵니다. Business 플랜은 `api.business.githubcopilot.com`, Enterprise 플랜은 `api.enterprise.githubcopilot.com`으로 바꿔 실행합니다.

   ```bash
   curl -sS -m 10 https://api.individual.githubcopilot.com/_ping
   ```

2. Copilot 토큰을 발급하는 주소를 확인합니다. 인증 없이 보냈으므로 `"message": "Requires authentication"`이 담긴 JSON이 나오면 정상입니다.

   ```bash
   curl -sS -m 10 https://api.github.com/copilot_internal/v2/token
   ```

3. 모델 목록 주소를 확인합니다. `bad request: missing required Authorization header`가 나오면 서버까지 닿은 것입니다.

   ```bash
   curl -sS -m 10 https://api.individual.githubcopilot.com/models
   ```

4. 인증서 발급자를 확인합니다. 2026년 11월 4일 기준 정상 발급자는 `O=Sectigo Limited`입니다. Windows에서는 Git for Windows에 들어 있는 openssl을 쓰거나, 이 단계 대신 Chat Diagnostics의 인증서 오류 여부를 봅니다.

   ```bash
   echo | openssl s_client -connect api.individual.githubcopilot.com:443 -servername api.individual.githubcopilot.com 2>/dev/null | openssl x509 -noout -issuer
   ```

2026년 11월 4일 macOS(curl 8.7.1)에서 로컬 프록시 포트를 거치는 네트워크로 위 확인을 실행한 결과는 다음과 같았습니다. 토큰 주소는 401 "Requires authentication", 개인·Business·Enterprise용과 `api.githubcopilot.com`의 `/_ping`은 모두 200 `OK`, 개인 플랜 `/models`는 400 "missing required Authorization header"였고, 요청 하나당 약 0.84~1.13초가 걸렸습니다. 인증서 발급자는 `*.individual.githubcopilot.com`이 Sectigo Public Server Authentication CA DV R36, `*.github.com`이 같은 회사의 E36이었고, 같은 시각 GitHub Status의 Copilot과 Copilot AI Model Providers는 모두 정상이었습니다. 이것은 네트워크가 열려 있을 때의 모습이며, 한 대의 컴퓨터와 한 네트워크에서 한 시점에 확인한 결과입니다. 로그인한 상태의 요청은 이 확인에 포함되지 않습니다.

결과가 다르게 나왔다면 막힌 지점을 이렇게 읽습니다. 시간 초과는 방화벽이 패킷을 버리는 경우가 많고, 연결 거부는 프록시를 거쳐야 하는 네트워크에서 직접 나가려 할 때 흔합니다. 발급자가 Sectigo가 아니라 회사 이름이나 보안 제품 이름이면 회사 프록시가 HTTPS를 열어 보고 인증서를 바꿔 끼우는 중입니다. 메인테이너가 진단한 사례 중에는 `github.com`은 되는데 `githubcopilot.com`에서만 `ENETUNREACH`가 난 경우가 있었는데, 이는 해당 도메인만 막힌 것입니다. WSL2 안에서 VS Code를 쓴다면 WSL 안에서 같은 명령을 실행해야 하고, 기본 NAT 모드의 IPv6 문제 때문이라면 미러 네트워크 모드로 바꾸거나 IPv6를 끄는 방법이 제시된 적이 있습니다.

![curl 결과 읽는 법: 200 OK, 401 Requires authentication, 400 missing required Authorization header와 Sectigo 발급자는 서버까지 닿은 것이고, 시간 초과, 연결 거부, 회사 이름의 인증서 발급자, 회사망에서만 실패하는 개인 계정은 중간에서 막힌 것](https://blog.laozhang.ai/posts/ko/github-copilot-language-model-unavailable/img/curl-reachability.webp)

curl이 통해도 VS Code가 같은 경로로 나간다는 보장은 없습니다. [VS Code 네트워크 문서](https://github.com/microsoft/vscode-docs/blob/main/docs/setup/network.md)에 따르면 VS Code는 Chromium 네트워크 스택을 쓰고 시스템 프록시를 자동으로 읽는 반면, 터미널의 curl은 환경 변수나 다른 설정을 따를 수 있습니다. curl은 되는데 VS Code만 실패한다면 Chat Diagnostics의 Proxy URL 줄이 기대한 프록시를 가리키는지 비교합니다.

## 회사 프록시·VPN·인증서 때문이라면 IT에 요청할 것

회사 네트워크가 원인이라면 대부분 개인이 고칠 수 없고, IT 부서에 정확한 도메인 목록을 전달하는 것이 가장 빠릅니다. [GitHub의 Copilot 허용 목록 문서](https://docs.github.com/en/copilot/reference/copilot-allowlist-reference)가 요구하는 주소는 다음과 같습니다.

- `https://github.com/login/*`, `https://api.github.com/user`, `https://api.github.com/copilot_internal/*`
- `https://copilot-proxy.githubusercontent.com`, `https://origin-tracker.githubusercontent.com`
- `https://copilot-telemetry.githubusercontent.com/telemetry`, `https://default.exp-tas.com`
- 플랜별 주소: 개인 플랜은 `*.individual.githubcopilot.com`, Business는 `*.business.githubcopilot.com`, Enterprise는 `*.enterprise.githubcopilot.com`

여기서 개인 계정 사용자가 자주 막히는 지점은 마지막 줄입니다. GitHub가 2024년 11월부터 적용한 [구독 기반 네트워크 라우팅](https://github.blog/changelog/2024-11-04-copilot-subscription-based-network-routing-is-now-enforced/)을 쓰는 회사는 자기 플랜 도메인만 열고 `*.individual.githubcopilot.com`은 일부러 막습니다. 그래서 개인 Copilot 계정으로는 사내망에서 실패하고 휴대폰 핫스폿에서는 되는 일이 생깁니다. 이 경우 회사가 Copilot 시트를 준다면 그 계정으로 로그인하는 것이 맞고, 개인 계정을 써야 한다면 IT에 예외를 요청해야 합니다. "vscode copilot 로그인 안됨"처럼 로그인 단계부터 실패한다면 목록 첫 줄의 `github.com/login`과 `api.github.com/user`가 막혔는지도 함께 물어보세요.

회사 프록시가 HTTPS 인증서를 바꿔 끼우는 환경이라면, 해결책은 그 프록시의 루트 인증서를 운영체제 신뢰 저장소에 넣는 것입니다. Linux에서는 NSS 저장소에도 추가해야 하며, VS Code 문서는 `certutil -A -n "ProxyCA" -t "CT,," -i 인증서파일 -d sql:$HOME/.pki/nssdb` 형식을 안내합니다. 인터넷에 돌아다니는 `"http.proxyStrictSSL": false`나 `--ignore-certificate-errors`는 인증서 검증을 꺼 버리는 방법이고, 공식 문서도 후자를 위험하며 권장하지 않는다고 적고 있으므로 쓰지 않는 것이 좋습니다. 시스템 프록시와 다른 프록시를 써야 한다면 VS Code를 `--proxy-server` 실행 인수와 함께 시작하는 방법이 있습니다.

## 체험판·플랜·not licensed: 계정 쪽에서 확인할 곳

로그에 `403`이나 "not licensed to use Copilot"이 보이거나 모델 선택기가 "Local"에 멈춰 있다면 네트워크가 아니라 계정 상태를 봐야 합니다. 이 경우 프록시를 바꾸거나 재설치를 해도 결과가 달라지지 않습니다.

1. VS Code 왼쪽 아래 계정(Accounts) 아이콘에서 로그인된 GitHub 계정이 Copilot을 가진 바로 그 계정인지 확인합니다. VS Code가 회사 계정으로 자동 로그인돼 있던 사례가 2026년 3월에 보고됐습니다.
2. GitHub 웹의 [Copilot 설정 페이지](https://github.com/settings/copilot)에서 현재 플랜을 확인합니다. 2026년 11월 기준 개인용은 Copilot Free, Student, Pro, Pro+, Max가 있고 조직용은 Business, Enterprise가 있습니다.
3. [GitHub 결제 페이지](https://github.com/settings/billing)에서 결제 실패, 만료, 체험판 종료 안내가 있는지 봅니다.
4. 회사나 학교에서 받은 시트라면 조직 관리자에게 시트가 할당돼 있는지 확인을 요청합니다. Business에서 Enterprise로 옮긴 직후 이 오류가 났다는 보고도 있습니다.

체험판 사용자는 특히 주의해야 합니다. GitHub는 [2026년 4월 10일 공지](https://github.blog/changelog/2026-04-10-pausing-new-github-copilot-pro-trials/)로 새 Copilot Pro 체험판을 중단했고, 4월 13일에는 진행 중인 체험판까지 모두 중단한다고 고쳤습니다. 이때 체험판 사용자는 Copilot Free로 바꾸거나 Pro·Pro+로 업그레이드하라는 안내를 받았고, 4월 14일 열린 이슈 [#309766](https://github.com/microsoft/vscode/issues/309766)에는 이 오류를 만난 체험판 사용자들이 몰렸습니다. 결제 페이지에서 "Start paid subscription"을 누른 뒤 복구됐다는 사람도, 효과가 없었다는 사람도 있습니다. 그 공지는 지금 "Retired"로 표시돼 있고 표시의 의미는 설명돼 있지 않으므로, 현재 체험판을 쓸 수 있는지는 결제 페이지에서 직접 확인해야 합니다.

유료 플랜인데도 막히는 경우가 있습니다. 2026년 4월에는 유료 Pro가 만료된 체험판으로 인식돼 구독을 취소하고 다시 구독한 뒤 해결됐다는 사용자가 있었고(중복 청구는 없었다고 적었습니다), 9월 27일에는 유료 Pro+ 사용자가 403 "not licensed"와 함께 이 오류를 보고했지만 해결 방법은 올라오지 않았습니다. 결제 승인 실패와 관련이 있다고 의심한 보고도 있습니다. 위 네 가지를 확인해도 플랜이 정상으로 보이는데 403이 계속된다면 GitHub Support에 문의하는 것이 다음 단계입니다.

## VS Code를 업데이트해야 하나: Copilot Chat은 최신 VS Code만 지원

VS Code가 몇 달 전 버전이라면 먼저 업데이트하세요. [GitHub의 Copilot 문제 해결 문서](https://docs.github.com/en/copilot/how-tos/troubleshoot-copilot/troubleshoot-common-issues)는 새 Copilot Chat 버전이 최신 VS Code 릴리스와만 호환되고, 오래된 클라이언트는 Copilot 서버와 통신할 수 없다고 설명합니다. 2026년 8월부터 11월까지 같은 오류로 올라온 이슈 여러 건에는 2025년 11월~2026년 2월에 나온 VS Code 1.106.2, 1.107.1, 1.109.x가 적혀 있었습니다.

VS Code는 거의 매주 새 버전이 나오며, 2026년 11월 4일 기준 최신 안정 버전은 같은 날 나온 1.145.0입니다. Windows·Linux는 Help > Check for Updates, macOS는 Code > Check for Updates로 확인할 수 있습니다. 한 사용자는 이렇게 업데이트한 뒤 두 대의 컴퓨터가 모두 복구됐다고 적었지만, 반대로 1.107.1로 되돌린 뒤에야 복구됐다는 보고도 있습니다. 업데이트는 오래된 버전일 때 먼저 해 볼 일이지 확실한 해결책은 아니므로, 업데이트 후에도 같은 오류가 나면 로그 확인으로 돌아갑니다.

## Copilot 계정을 다시 연결하는 순서: Sign out, Reload Window, 로그인

로그에 `Failed to fetch models` 줄이 아예 없거나, 엉뚱한 계정이 로그인돼 있거나, 플랜을 막 바꿨다면 계정 연결을 새로 하는 것이 맞습니다. GitHub 문서가 안내하는 VS Code 재인증 순서는 다음과 같습니다.

1. 왼쪽 아래 계정(Accounts) 아이콘을 누르고 사용자 이름 위에 마우스를 올린 뒤 **Sign out**을 고릅니다.
2. `F1`로 명령 팔레트를 열고 **Developer: Reload Window**를 실행합니다.
3. Copilot 플랜이 있는 GitHub 계정으로 다시 로그인합니다.

다시 로그인하는 것은 한 번이면 충분합니다. 장애나 네트워크 차단이 원인이라면 몇 번을 반복해도 결과가 같습니다. 커뮤니티 보고 중에는 2026년 8월 17일 장애 때 컴퓨터를 완전히 다시 시작한 뒤에야 복구됐다는 경우와, 모델 관리(Manage Models) 목록이 비어 있어 모델을 다시 추가하자 돌아왔다는 경우도 있습니다.

## 남아 있는 로컬 설정: overrideProxyUrl과 skills 폴더

로그에 아래 줄이 보일 때만 해당하는 원인 두 가지가 있습니다. 둘 다 사용자 컴퓨터에 남은 설정이나 파일 때문이라 직접 고칠 수 있습니다.

첫째는 Copilot 요청 주소를 바꾸는 디버그 설정입니다. 사용자 settings.json의 `github.copilot.advanced.debug.overrideProxyUrl`과 `github.copilot.advanced.debug.overrideCapiUrl`은 Copilot 요청을 지정한 주소로 보내는데, 중계 도구를 쓰다 지우고 이 두 줄만 남으면 요청이 아무도 듣지 않는 주소로 갑니다. 2026년 9월 25일 보고된 사례에서는 두 설정이 로컬 주소의 8788 포트를 가리키고 있었고, 로그에 `net::ERR_CONNECTION_REFUSED`와 `401 unauthorized: unable to validate HMAC for the given Copilot-Integration-ID`가 남았습니다. 두 줄을 지우고 창을 다시 로드하자 복구됐습니다.

둘째는 다른 AI 도구의 skills 폴더입니다. 2026년 3월 9일 GitHub 커뮤니티 토론 [#188977](https://github.com/orgs/community/discussions/188977)에서는 VS Code 1.110.1 사용자가 Copilot CLI는 되는데 VS Code만 이 오류를 내고 로그에 `TypeError: e is not iterable`가 남는다고 보고했습니다. Copilot Chat이 시작할 때 `~/.claude/skills`와 `~/.agents/skills`를 읽는데, 다른 도구가 만든 스킬 파일의 이름이 겹치거나 형식이 맞지 않아 실패한 것이었고, 두 폴더 이름을 바꾸자 해결됐습니다. 보고가 한 건뿐이고 지금 버전에서도 같은 문제가 나는지는 알려지지 않았으므로, 같은 로그 줄이 보일 때만 폴더를 지우지 말고 이름만 바꿔 시험해 보세요. 메인테이너는 서드파티 확장 `nicepkg.aide-pro`가 Copilot을 방해한 사례도 지적한 적이 있습니다.

## 고칠 때까지 채팅을 이어가려면: BYOK Custom Endpoint

장애 복구나 IT 처리를 기다리는 동안에도 채팅이 필요하다면, 자기 API 키로 모델을 연결하는 BYOK(Bring Your Own Key)가 Copilot 모델 목록 없이도 동작합니다. [VS Code 언어 모델 문서](https://github.com/microsoft/vscode-docs/blob/main/docs/agent-customization/language-models.md)에 따르면 Local 하네스 세션에서는 BYOK 모델이 GitHub 로그인과 Copilot 플랜 없이 작동합니다. 다만 이것은 Copilot을 고치는 방법도, Copilot을 무료로 쓰는 방법도 아닙니다. 클라우드 모델이라면 사용료는 키를 발급한 곳에 따로 냅니다.

제약도 분명합니다. 코드 자동 완성(인라인 제안), 시맨틱 검색, 임베딩을 쓰는 기능은 여전히 GitHub 계정이 필요하고, 로그인하지 않으면 제목 생성 같은 보조 기능용 모델도 없으므로 `chat.utilityModel`과 `chat.utilitySmallModel`을 BYOK 모델로 지정해야 합니다. Business·Enterprise 사용자는 관리자가 BYOK 정책을 꺼 두었을 수 있습니다.

연결할 곳은 OpenAI·Anthropic·Gemini처럼 기본 제공되는 공급자에 자기 키를 넣는 방법, Ollama 공식 확장으로 로컬 모델을 쓰는 방법, OpenAI 호환 주소를 Custom Endpoint로 넣는 방법이 있습니다. 마지막 경우는 명령 팔레트의 **Chat: Manage Language Models**에서 **Add Models** → **Custom Endpoint**를 고르고 그룹 이름, 표시 이름, API 키, API 형식(Chat Completions, Responses, Messages)을 입력하면 `chatLanguageModels.json`이 열립니다. 최소 설정은 다음과 같습니다. `maxInputTokens`와 `maxOutputTokens`는 VS Code 문서 예시의 값이므로 쓰는 모델의 실제 한도에 맞게 바꿉니다.

```json
[
  {
    "name": "My Endpoint",
    "vendor": "customendpoint",
    "apiKey": "${input:myApiKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "gpt-5.4-mini",
        "name": "gpt-5.4-mini",
        "url": "https://api.laozhang.ai/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 128000,
        "maxOutputTokens": 16000
      }
    ]
  }
]
```

위 예시의 주소는 OpenAI 호환 엔드포인트 중 하나인 laozhang.ai(base URL `https://api.laozhang.ai/v1`)입니다. 2026년 11월 4일 이 주소에 `gpt-5.4-mini`로 요청해 보니 일반 요청은 3.99초 만에 200 응답을, 도구 정의를 넣은 스트리밍 요청은 3.24초 동안 SSE 청크 9개를 보낸 뒤 `[DONE]`으로 끝나며 `read_file` 도구 호출과 인수 `{"path":"README.md"}`를 `finish_reason: tool_calls`로 정확히 돌려줬습니다. 에이전트 모드에 필요한 스트리밍과 도구 호출 형식으로 응답한다는 뜻이지만, VS Code에 직접 연결해 본 것은 아니므로 처음 연결할 때는 짧은 요청으로 먼저 확인하세요. 자기 OpenAI나 Anthropic 키를 쓸 때도 `url`, `apiType`, 모델 `id`를 바꾸면 같은 형식이 적용되며, 무료 한도가 있는 API를 고르고 있다면 [무료 AI API 추천: 조건별 첫 선택과 무료 한도 비교](https://blog.laozhang.ai/ko/posts/free-ai-api-tiers-compared)를 참고할 수 있습니다.

*안내: [laozhang.ai는 이 블로그 운영팀의 자사 서비스입니다](https://blog.laozhang.ai/ko/about#laozhang). 그 가격은 독립적인 비교가 아니라 자사 제시 가격입니다.*

## Copilot Language model unavailable에 대한 다른 질문

### 사용량(AI credits)을 다 쓰면 이 오류가 나나요?

보통은 아닙니다. GitHub 문서 기준으로 요청 속도 제한은 "You've hit a rate limit"라는 별도 오류로 나오고, 월간 AI credits 잔량은 상태 표시줄의 Copilot 상태 패널에서 볼 수 있습니다. Copilot 확장 소스 코드상 429 응답을 받아도 이미 받아 둔 모델 목록이 있으면 경고만 남기므로, 이 오류가 함께 나오는 경우는 모델 목록이 없는 상태에서 429를 받았을 때로 좁혀집니다.

### Copilot의 Local 모델로 바꾸면 되나요?

Copilot이 제공하는 기기 내 모델(2026년 11월 기준 MAI Code 1.1 Flash, 다운로드 52.8GB)은 GitHub 로그인이 필요하고, Business·Enterprise에서는 관리자가 Editor Preview Features를 켜야 합니다. 네트워크가 막혔을 때 로컬 모델도 쓸 수 없었다는 커뮤니티 보고(2026년 2월)도 있습니다. 로그인 없이 쓰려면 Ollama 공식 확장 같은 BYOK 로컬 모델을 써야 합니다.

### 코드 자동 완성도 같이 안 되면 같은 원인인가요?

자동 완성(인라인 제안)은 채팅 모델 목록과 별개 기능이라 이 메시지와 직접 관계는 없습니다. 다만 둘 다 GitHub 계정과 Copilot 서버 연결이 필요하므로, 채팅과 자동 완성이 동시에 멈췄다면 공통 단계인 로그인과 네트워크를 먼저 의심하는 것이 합리적입니다.

### 안 되는 것이 Copilot이 아니라 Claude Code 확장이라면요?

Anthropic의 Claude Code 확장은 Copilot과 다른 경로로 동작하므로 진단 방법도 다릅니다. [Claude Code가 VS Code에서 안 될 때는 먼저 실패 지점을 나눠야 한다](https://blog.laozhang.ai/ko/posts/claude-not-working-in-vscode)를 참고하세요.

## 참고 자료

이 글이 링크한 외부 페이지를 본문에 나온 순서대로 정리했습니다. 마지막 업데이트: 2026-11-04.

- [GitHub Status 페이지](https://www.githubstatus.com/) (githubstatus.com)
- [extHostLanguageModels.ts](https://github.com/microsoft/vscode/blob/main/src/vs/workbench/api/common/extHostLanguageModels.ts) (github.com)
- [PR #339307](https://github.com/microsoft/vscode/pull/339307) (github.com)
- [modelMetadataFetcher.ts](https://github.com/microsoft/vscode/blob/main/extensions/copilot/src/platform/endpoint/node/modelMetadataFetcher.ts) (github.com)
- [#309766](https://github.com/microsoft/vscode/issues/309766) (github.com)
- [VS Code 문제 해결 문서](https://github.com/microsoft/vscode-docs/blob/main/docs/agents/agent-troubleshooting/troubleshooting.md) (github.com)
- [#253137 "Meta: Language Model Unavailable"](https://github.com/microsoft/vscode/issues/253137) (github.com)
- [VS Code 네트워크 문서](https://github.com/microsoft/vscode-docs/blob/main/docs/setup/network.md) (github.com)
- [GitHub의 Copilot 허용 목록 문서](https://docs.github.com/en/copilot/reference/copilot-allowlist-reference) (docs.github.com)
- [구독 기반 네트워크 라우팅](https://github.blog/changelog/2024-11-04-copilot-subscription-based-network-routing-is-now-enforced/) (github.blog)
- [Copilot 설정 페이지](https://github.com/settings/copilot) (github.com)
- [GitHub 결제 페이지](https://github.com/settings/billing) (github.com)
- [2026년 4월 10일 공지](https://github.blog/changelog/2026-04-10-pausing-new-github-copilot-pro-trials/) (github.blog)
- [GitHub의 Copilot 문제 해결 문서](https://docs.github.com/en/copilot/how-tos/troubleshoot-copilot/troubleshoot-common-issues) (docs.github.com)
- [#188977](https://github.com/orgs/community/discussions/188977) (github.com)
- [VS Code 언어 모델 문서](https://github.com/microsoft/vscode-docs/blob/main/docs/agent-customization/language-models.md) (github.com)
