xpzouying/xiaohongshu-mcp · critical
下载内置浏览器失败: %w 本项目只用内置浏览器,缺它不继续。请检查网络后重试; 离线环境可手动下载 %s,解压
Error message
下载内置浏览器失败: %w 本项目只用内置浏览器,缺它不继续。请检查网络后重试; 离线环境可手动下载 %s,解压到 %s 后重启。
What it means
EnsureBrowser 连续 3 次下载内置浏览器压缩包均失败(每次失败已删除半成品文件并间隔 2s 重试)。本项目只使用内置浏览器、不回退系统浏览器,所以网络不可用即无法继续;错误中附带手动下载 URL 与缓存目录供离线环境自救。
Source
Thrown at browser/browser_download.go:104
if err := os.MkdirAll(cacheDir, 0o755); err != nil {
return "", err
}
// 下载(重试 3 次)
logrus.Infof("首次运行:下载内置浏览器 %s(%s,约 140-190MB,仅一次)...", browserVersion, asset)
archivePath := filepath.Join(cacheDir, asset)
var dlErr error
for attempt := 1; attempt <= 3; attempt++ {
if dlErr = downloadFile(browserURL(asset), archivePath); dlErr == nil {
break
}
logrus.Warnf("下载失败(第 %d/3 次): %v", attempt, dlErr)
_ = os.Remove(archivePath)
time.Sleep(2 * time.Second)
}
if dlErr != nil {
return "", fmt.Errorf("下载内置浏览器失败: %w\n"+
" 本项目只用内置浏览器,缺它不继续。请检查网络后重试;\n"+
" 离线环境可手动下载 %s,解压到 %s 后重启。", dlErr, browserURL(asset), cacheDir)
}
defer os.Remove(archivePath)
// 校验 SHA256(本地已成分发点,必须校验完整性)
if err := verifySHA256(archivePath, asset); err != nil {
return "", fmt.Errorf("校验失败: %w", err)
}
logrus.Infof("解压内置浏览器 ...")
if err := extractArchive(archivePath, cacheDir); err != nil {
return "", fmt.Errorf("解压失败: %w", err)
}
bin := findBinary(cacheDir, binName)
if bin == "" {
return "", fmt.Errorf("解压后未找到二进制 %s", binName)View on GitHub (pinned to 332d196854)
Solutions
- 检查网络连通性后重试
- 按错误信息中的 URL 手动下载资产,解压到提示的缓存目录后重启
- 配置正确的代理环境变量(HTTPS_PROXY/HTTP_PROXY)
- 容器环境安装 ca-certificates
Example fix
// before ./app # 下载失败 // after export HTTPS_PROXY=http://proxy:8080 ./app # 或手动下载 asset 解压到 UserCacheDir 下的缓存目录后重启
Defensive patterns
Strategy: retry
Validate before calling
// 下载前探测网络可达
resp, err := http.Head(assetURL)
if err != nil { return fmt.Errorf("网络不可达: %w", err) }
resp.Body.Close() Try / catch
bin, err := browser.EnsureBrowser()
if err != nil && strings.Contains(err.Error(), "下载内置浏览器失败") {
slog.Warn(err.Error()) // 错误信息含手动下载 URL 与缓存目录
return manualFallback()
} Prevention
- 在离线环境预先手动下载资产放入缓存目录
- 配置正确的 HTTPS_PROXY
- 容器镜像内安装 ca-certificates
- 部署脚本里先做下载连通性探测
When it happens
Trigger: 浏览器资产下载 3 次均失败:无外网/防火墙拦截下载域名、DNS 解析失败、代理不可用、下载服务器 5xx、带宽中断导致超时。
Common situations: 离线/内网服务器部署;公司代理未配置 HTTPS_PROXY;下载 CDN 临时故障;容器内缺少 CA 证书导致 TLS 失败。
Related errors
- 获取 SHA256SUMS: HTTP %d
- HTTP %d: %s
- 导航到发布页面失败
- invalid image URL format
- downloaded file is not a valid image
AI-assisted analysis of xpzouying/xiaohongshu-mcp@332d196854 (2026-09-05).
Data as JSON: /api/errors/47a8a7bbd5f85349.
Report an issue: GitHub.