xpzouying/xiaohongshu-mcp · error
小红书发布失败
Error message
小红书发布失败
What it means
Publish 图文发布流程的总包装错误:上传图片或 submitPublish 任一子步骤失败时被 errors.Wrap 上抛到此消息。真正原因在包装链下游(如上传输入框查找失败、TAB 点击失败、长度超限等),需查看错误链的底层 cause。
Source
Thrown at xiaohongshu/publish.go:94
}
// 重设超时:.Context(ctx) 会替换掉 NewPublishImageAction 里 Timeout(300s) 的 deadline
page := p.page.Context(ctx).Timeout(300 * time.Second)
if err := uploadImages(page, content.ImagePaths); err != nil {
return errors.Wrap(err, "小红书上传图片失败")
}
tags := content.Tags
if len(tags) >= 10 {
logrus.Warnf("标签数量超过10,截取前10个标签")
tags = tags[:10]
}
logrus.Infof("发布内容: title=%s, images=%v, tags=%v, schedule=%v, original=%v, visibility=%s, products=%v", content.Title, len(content.ImagePaths), tags, content.ScheduleTime, content.IsOriginal, content.Visibility, content.Products)
if err := submitPublish(ctx, page, content.Title, content.Content, tags, content.ScheduleTime, content.IsOriginal, content.Visibility, content.Products); err != nil {
return errors.Wrap(err, "小红书发布失败")
}
return nil
}
// hasPopCover 当前页面是否还有挡人的浮层。
func hasPopCover(page *rod.Page) bool {
has, _, err := page.Has("div.d-popover")
return err == nil && has
}
// dismissPopCover 关掉挡住发布 TAB 的浮层,按 Esc → 点空白 → 摘节点逐级降级。
// 保留摘节点这一步是因为它只要节点还在就必定生效,前两步是否奏效取决于页面
// 自己有没有写对应的处理,无从预判。
func dismissPopCover(page *rod.Page) {
if err := page.Keyboard.Press(input.Escape); err != nil {
logrus.Debugf("按 Esc 关闭浮层失败: %v", err)
}View on GitHub (pinned to 332d196854)
Solutions
- 查看错误链底层 cause 定位具体失败步骤
- 按底层错误对应的方式处理(重试/修正参数/检查登录态)
- 确认图片路径有效且标签数不超过 10
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at xiaohongshu/publish.go:94 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of xpzouying/xiaohongshu-mcp@332d196854 (2026-09-05).
Data as JSON: /api/errors/08a0d604b7959bd8.
Report an issue: GitHub.