GraphQL 诊断通道跟踪在 Cloudflare Workers 尾部 Workers 中发布非结构化可克隆负载
作者: astanciu创建于 2026年7月6日更新于 2026年8月11日
GraphQL.js 17 在模块加载时解析 node:diagnostics_channel 并创建 graphql:* 跟踪通道。在具有 nodejs_compat 和附加了尾部工作者的 Cloudflare Workers 中,Cloudflare 将诊断通道消息转发给尾部工作者,作为 diagnosticsChannelEvents。这种转发似乎需要结构化可克隆的负载。GraphQL 的诊断上下文包括诸如 GraphQLSchema、DocumentNode、Source、执行结果、解析器参数/结果等对象。其中一些对象不是结构化可克隆的。在生产环境中,这会导致 Cloudflare 运行时日志错误,例如:
Failed to publish diagnostics channel message:
请求本身仍然成功;日志会被污染,包含运行时错误。
内容来源: graphql/graphql-js