VS Code Codespace挂载失败、无法重连、终端无提示故障咨询
故障原因
报错Code:1006本质是VS Code Workbench无法完成Codespace工作区的网络中继连接与存储挂载,之前出现的代码保存异常、双版本并存是因为存储挂载出现读写分区错乱,删除文件操作进一步损坏了持久化存储的元数据。直接删除Codespace实例后故障复现,是因为GitHub默认会将账号维度的Codespace持久化备份、用户配置缓存自动同步到同仓库下的新实例,损坏的缓存没有被同步清理。
修复步骤
- 先进入GitHub账号下的Codespaces管理页面,找到故障实例关联的持久化存储备份条目手动删除,不要直接删除实例后立刻新建,这一步是阻断损坏缓存的同步链路。
- 新建Codespace实例时,取消勾选「从上次工作状态恢复」选项,展开高级设置,临时关闭
Settings Sync、Dev Container缓存恢复两个开关,选择仓库默认分支全新创建实例。 - 如果新实例仍然报挂载错误,不要通过VS Code Workbench入口进入,选择Codespace管理页提供的直连Web Shell入口进入实例,执行以下命令重置挂载与缓存:
# 清理VS Code服务端损坏的工作区索引缓存 rm -rf ~/.vscode-server/data/User/WorkspaceStorage/ # 强制重新挂载工作区分区 sudo umount /workspaces 2>/dev/null sudo mount -a # 重启VS Code服务端 pkill -f vscode-server
- 实例恢复访问后,先使用
code --disable-extensions启动无插件模式,验证代码加载、终端输入功能正常,再逐个启用插件排查冲突。之前出现的同文件双保存版本问题,通常是第三方文件同步、实时协作类插件和Codespace自带的自动保存机制抢占文件写入锁导致的。
应急备份方案
如果以上操作后仍然无法正常加载VS Code界面,可以通过Codespace管理页的简易网页编辑器入口进入实例,该入口不依赖VS Code Workbench的挂载中继逻辑,可以先行导出需要的代码文件避免数据丢失。
相关报错与现象参考
触发故障前系统抛出的报错信息:
VSCodeWorkbench mount failed with "Failed to connect to relay url Code: 1006 Reason: "
故障现象截图:

内容的提问来源于stack exchange,提问作者Joshua Moellers
相关产品推荐
相关产品推荐

