⚠️ Problem Definition
Precise description of the issue
When starting VS Code, GitHub Copilot Chat status shows “Getting Copilot ready.” but when you type any message in the prompt, later on, it shows the error “Copilot took too long to get ready. Please try again.”
🚨 Error messages and symptoms
- Copilot Chat fails to initialize.
- Copilot error logs show:
TypeError: fetch failed ConnectTimeoutError: Connect Timeout Error (attempted address: api.business.githubcopilot.com:443, timeout: 10000ms) [LanguageModelAccess] FAILED to update language models
- Reinstalling the extension, restarting VS Code/PC, and re-authenticating do not resolve the issue.
📉 Impact of the issue
- Copilot Chat is unusable, impacting productivity for developers relying on AI assistance.
🔍 Root Cause Analysis
💡 Explanation of why the issue occurred
On my end, the issue was caused by DNS resolution problems. The /etc/resolv.conf
file in WSL listed corporate VPN DNS servers (10.70.x.x
) before public DNS servers (Google: 8.8.8.8
, 8.8.4.4
). The corporate DNS blocked or failed to resolve GitHub Copilot endpoints, causing timeouts.

🛠️ Solution
Step-by-step instructions to fix the issue
- Open
/etc/resolv.conf
in your WSL terminal:
sudo nano /etc/resolv.conf
- Remove or comment out any corporate VPN DNS entries
(e.g., nameserver 10.70.x.x)
, leaving only public DNS servers such as Google:
nameserver 8.8.8.8 nameserver 8.8.4.4
- Save the file and restart your PC to ensure all changes take effect.
- Open VS Code and sign in to GitHub Copilot Chat to verify if the issue is resolved.
Optional: Prioritize public DNS servers instead of removing corporate DNS
- If you still need access to internal corporate resources, you can move the public DNS entries to the top of the file, above the corporate DNS entries. This way, public DNS will be tried first:
# Use Google DNS for external traffic (e.g., Copilot) nameserver 8.8.8.8 nameserver 8.8.4.4 # Corporate VPN Nameservers nameserver 10.70.x.x nameserver 10.70.x.x
- Save and restart your PC. This prioritizes public DNS for external requests while retaining access to internal resources if needed.
Note: Understanding DNS Priority Order
When you add multiple nameserver entries in/etc/resolv.conf
, your system checks them in order. It will try the first one listed. If it fails, it moves to the next.
This is called a hierarchical order or failover system.
🔹 The first DNS has the highest priority.
🔹 If it doesn't work, the system tries the second, then the third, and so on.
🔹 This helps keep internet access working even if one server fails.
If you're using a corporate DNS (like10.70.x.x
) and Copilot shows timeout errors, it may be blocked or can't reach GitHub. Adding public DNS (like8.8.8.8
) as a backup can help.
✅ Verification
Steps to confirm the issue is resolved
- Open VS Code and check that Copilot Chat initializes successfully.
- Confirm you can interact with Copilot Chat without timeout errors.
🛡️ Preventative Measures
How to prevent the issue from recurring
- Ensure public DNS servers are prioritized in
/etc/resolv.conf
if Copilot Chat requires external connectivity. - If using VPN, be aware that corporate DNS may block some external services.
- Consider automating the DNS configuration or documenting this for all developers using WSL.
🎉 Conclusion
Summary of the solution and its benefits
By prioritizing public DNS servers in /etc/resolv.conf
, GitHub Copilot Chat can connect to required endpoints, resolving the timeout issue. This ensures reliable access to Copilot Chat and improves developer productivity.