You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加DurableObject2后Cloudflare Worker部署报错[10061]求助

排查Cloudflare Worker新增DurableObject2时的10061错误

以下是针对该错误的具体排查方向:

  • 严格匹配绑定名称与类名的大小写
    Cloudflare对Durable Object的类名与绑定配置的匹配是大小写敏感的。检查wrangler.staging.toml中[[durable_objects.bindings]]下的class_name字段,必须与代码中导出的类名完全一致(包括大小写),比如代码里是export class DurableObject2,配置里就不能写成class_name = "durableobject2"或Durableobject2。

  • 验证wrangler版本与配置格式兼容性
    旧版Worker对应的wrangler版本(比如wrangler 1.x)与新版(2.x+)的Durable Object配置格式存在差异。确认你的wrangler.staging.toml配置格式符合当前wrangler版本要求:

    • wrangler 1.x用[durables]区块配置,绑定格式为binding_name = "ClassName"
    • wrangler 2.x+用[[durable_objects.bindings]]数组,每个绑定包含name(绑定名)和class_name(类名)
      如果版本不匹配,哪怕配置看着正确,Cloudflare也无法识别新的DO类。
  • 确认部署时使用的是正确的编译产物
    检查wrangler.staging.toml中的main字段,确认指向的是编译后的dist/index.js而非未编译的src/index.ts。如果配置成直接上传TS文件,Cloudflare服务器无法解析TS的导出语法,会导致类无法被识别。另外,重新执行打包命令(比如npm run build),确保编译产物是最新的,没有缓存旧代码。

  • 检查DurableObject2的类定义规范
    确认DurableObject2类正确继承了Cloudflare的DurableObject基类,且构造函数参数符合要求:

    export class DurableObject2 extends DurableObject {
      constructor(state: DurableObjectState, env: Env) {
        super(state, env);
        // 其他初始化逻辑
      }
      // 必须实现fetch方法或其他处理请求的方法
      async fetch(request: Request) {
        // 处理请求逻辑
      }
    }
    

    如果类没有继承基类、构造函数未调用super,或者没有实现请求处理方法,Cloudflare会无法将其识别为合法的Durable Object类,即使代码导出了也会报错。

  • 检查迁移规则的配置正确性
    确认wrangler.staging.toml中的[[migrations]]配置里,new_classes数组包含了DurableObject2:

    [[migrations]]
    tag = "v2" # 版本标签需更新
    new_classes = ["DurableObject", "DurableObject2"]
    

    如果迁移规则中未包含新的DO类,部署时Cloudflare会拒绝识别该类的绑定。

  • 清理wrangler缓存后重新部署
    执行wrangler cache clear命令清理本地缓存,再重新运行部署命令。有时候wrangler会缓存旧的代码或配置,导致部署时并未上传最新的DO类定义。

内容的提问来源于stack exchange,提问作者allevo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:25:03