Skip to content

publish_content 在调用时出现 Panic: {-32000 Inspected target navigated or closed } #305

@Yummytanmo

Description

@Yummytanmo

当在 Docker 中部署的 xiaohongshu-mcp 实例上使用 publish_content 工具时,应用程序会发生 Panic 并崩溃。错误信息 {-32000 Inspected target navigated or closed } 和堆栈跟踪表明,底层的 go-rod 浏览器自动化库在尝试执行命令时失去了对目标页面的控制。

根据堆栈跟踪,Panic 具体发生在 mustClickPublishTab 函数中,该函数在 NewPublishImageAction 的初始化过程中被调用。这表明,当自动化脚本尝试在小红书网站上查找并点击“发布”选项卡元素时,页面发生了意外的导航或关闭。这很可能是由于小红书前端UI/UX最近发生了变更,导致现有的自动化逻辑变得脆弱并执行失败。

复现步骤
复现此错误的操作步骤:

  1. 使用提供的 Docker 环境部署 xiaohongshu-mcp 服务。
  2. 调用 publish_content 工具,并提供有效的参数(如 title, content, images, tags)。
  3. 工具尝试运行浏览器自动化以发布内容。
  4. 服务发生 Panic 并退出。

预期行为
publish_content 工具应成功完成自动化流程,将内容发布到小红书,且应用程序不发生 Panic。

实际行为
应用程序发生 Panic,并报告错误 {-32000 Inspected target navigated or closed }

环境信息

  • 应用: xiaohongshu-mcp
  • 部署方式: Docker
  • 触发操作: publish_content

堆栈跟踪 (Stack Trace)

ERRO[1916] Tool handler panicked                         panic="{-32000 Inspected target navigated or closed }" tool=publish_content
ERRO[1916] Stack trace:
goroutine 578 [running]:
runtime/debug.Stack()
        /usr/local/go/src/runtime/debug/stack.go:26 +0x5e
main.registerTools.withPanicRecovery[...].func16.1()
        /src/mcp_server.go:111 +0x1dd
panic({0xa1d720?, 0xc00070cba0?})
        /usr/local/go/src/runtime/panic.go:792 +0x132
github.com/go-rod/rod/lib/utils.init.func2({0xa1d720?, 0xc00070cba0?})
        /go/pkg/mod/github.com/go-rod/rod@v0.116.2/lib/utils/utils.go:68 +0x1d
github.com/xpzouying/headless_browser.New.New.(*Browser).WithPanic.genE.func1({0xc00076ac20?, 0xb252a5?, 0xc0000fc008?})
        /go/pkg/mod/github.com/go-rod/rod@v0.116.2/must.go:36 +0x5c
github.com/go-rod/rod.(*Page).MustElement(0xc00089b4a0, {0xb252a5?, 0xc0008933d8?})
        /go/pkg/mod/github.com/go-rod/rod@v0.116.2/must.go:583 +0x92
github.com/xpzouying/xiaohongshu-mcp/xiaohongshu.mustClickPublishTab(0xc00089b4a0, {0xb1fa75, 0xc})
        /src/xiaohongshu/publish.go:101 +0x45
github.com/xpzouying/xiaohongshu-mcp/xiaohongshu.NewPublishImageAction(0xc00089b4a0)
        /src/xiaohongshu/publish.go:41 +0x6a
main.(*XiaohongshuService).publishContent(0xc0008935e8?, {0xe8df78, 0xc000596840}, {{0xc000718090, 0x2a}, {0xc0006ff400, 0x39f}, {0xc00076a5e0, 0x1, 0x1}, ...})
        /src/service.go:220 +0xa7
main.(*XiaohongshuService).PublishContent(0x12ec620, {0xe8df78, 0xc000596840}, 0xc000893758)
        /src/service.go:191 +0x170
main.(*AppServer).handlePublishContent(0xc0004da160, {0xe8df78, 0xc000596840}, 0xc000893998)
        /src/mcp_handlers.go:144 +0x574
main.registerTools.func4({0xe8df78, 0xc000596840}, 0x16?, {{0xc000718090, 0x2a}, {0xc0006ff400, 0x39f}, {0xc00076a530, 0x1, 0x1}, ...})
        /src/mcp_server.go:182 +0x3ac
main.registerTools.withPanicRecovery[...].func16(0xc00017d038?, {{0xc000718090, 0x2a}, {0xc0006ff400, 0x39f}, {0xc00076a530, 0x1, 0x1}, {0xc00076a540, 0x1, ...}})
        /src/mcp_server.go:126 +0x119
github.com/modelcontextprotocol/go-sdk/mcp.toolForErr[...].func1(0xc000688060)
        /go/pkg/mod/github.com/modelcontextprotocol/go-sdk@v0.7.0/mcp/server.go:259 +0x28e
github.com/modelcontextprotocol/go-sdk/mcp.(*Server).callTool(0xc0004ec000, {0xe8df78, 0xc000596840}, 0xc000688060)
        /go/pkg/mod/github.com/modelcontextprotocol/go-sdk@v0.7.0/mcp/server.go:527 +0xfb

补充说明
mustClickPublishTab 处发生错误表明,用于定位到发布页面的元素选择器或预期的页面流程可能已失效。自动化脚本很可能需要更新,以适配当前小红书网站的行为。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions