Skip to content

cloudflare r2: botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the ListObjectsV2 operation: The specified key does not exist. #33

Open

Description

@bbigras
Pushing skills to s3 storage (my-bucket/default @ https://something.r2.cloudflarestorage.com/my-bucket) ...
Traceback (most recent call last):
  File "/home/bbigras/src/SkillClaw/.venv/bin/skillclaw", line 6, in <module>
    sys.exit(skillclaw())
             ~~~~~~~~~^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/click/core.py", line 1524, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/click/core.py", line 1445, in main
    rv = self.invoke(ctx)
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/click/core.py", line 1912, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/click/core.py", line 1912, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/click/core.py", line 1308, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/click/core.py", line 877, in invoke
    return callback(*args, **kwargs)
  File "/home/bbigras/src/SkillClaw/skillclaw/cli.py", line 798, in skills_push
    result = hub.push_skills(cfg.skills_dir, skill_filter=skill_filter)
  File "/home/bbigras/src/SkillClaw/skillclaw/skill_hub.py", line 333, in push_skills
    self._delete_remote_bundle_extras(skill_name, bundle_files.keys())
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/skillclaw/skill_hub.py", line 144, in _delete_remote_bundle_extras
    for obj in self._iter_remote_keys(self._skill_files_prefix(skill_name)):
               ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/skillclaw/object_store.py", line 165, in iter_objects
    for page in paginator.paginate(Bucket=self._bucket, Prefix=prefix):
                ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/botocore/paginate.py", line 272, in __iter__
    response = self._make_request(current_kwargs)
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/botocore/context.py", line 123, in wrapper
    return func(*args, **kwargs)
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/botocore/paginate.py", line 360, in _make_request
    return self._method(**current_kwargs)
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/botocore/client.py", line 606, in _api_call
    return self._make_api_call(operation_name, kwargs)
           ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/botocore/context.py", line 123, in wrapper
    return func(*args, **kwargs)
  File "/home/bbigras/src/SkillClaw/.venv/lib/python3.13/site-packages/botocore/client.py", line 1094, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the ListObjectsV2 operation: The specified key does not exist.

Activity

  1. Upper9527 commented on Aug 17, 2026

    @Upper9527
    Collaborator

    The endpoint shown in the log includes the bucket name twice: the configured bucket is my-bucket, while the endpoint is also https://…r2.cloudflarestorage.com/my-bucket. SkillClaw/boto3 passes Bucket=my-bucket separately, so the R2 S3 endpoint should be the account endpoint only:

    sharing:
      backend: s3
      endpoint: https://<ACCOUNT_ID>.r2.cloudflarestorage.com
      bucket: my-bucket

    Please retry with the bucket suffix removed from endpoint. If ListObjectsV2 still returns NoSuchKey, paste the sanitized sharing block and the result of aws s3api list-objects-v2 --endpoint-url ... --bucket my-bucket --max-items 1 so we can distinguish configuration from an R2 compatibility bug.

  2. added
    bugSomething isn't working
    questionFurther information is requested
    on Oct 21, 2026
  3. Upper9527 commented on Oct 21, 2026

    @Upper9527
    Collaborator

    已合并 #98:现在会在访问存储前检测 R2 endpoint 被附加 bucket 的配置,并明确提示使用账号级 endpoint,避免请求 URL 中 bucket 重复。配置应为 sharing.endpoint=https://<ACCOUNT_ID>.r2.cloudflarestorage.com、sharing.bucket=<bucket-name>、sharing.region=auto。通用 S3 反向代理的合法路径不受影响。

    新增 7 项 endpoint 测试,与存储 bundle 测试共 15 项通过;没有使用你的 R2 账户做在线验证。请更新主分支、修正配置并重启后重试;如果正确 endpoint 仍失败,请补充版本、脱敏后的 endpoint 结构、HTTP 状态和 R2 错误码(不要贴凭据)。暂保留 issue 等待实际环境复测。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingquestionFurther information is requested

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions