Repository navigation
cloudflare r2: botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the ListObjectsV2 operation: The specified key does not exist. #33
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't workingquestionFurther information is requestedFurther information is requested
Description
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.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingquestionFurther information is requestedFurther information is requested
Activity
Upper9527 commentedon Aug 17, 2026
The endpoint shown in the log includes the bucket name twice: the configured bucket is
my-bucket, while the endpoint is alsohttps://…r2.cloudflarestorage.com/my-bucket. SkillClaw/boto3 passesBucket=my-bucketseparately, so the R2 S3 endpoint should be the account endpoint only:Please retry with the bucket suffix removed from
endpoint. IfListObjectsV2still returnsNoSuchKey, paste the sanitized sharing block and the result ofaws s3api list-objects-v2 --endpoint-url ... --bucket my-bucket --max-items 1so we can distinguish configuration from an R2 compatibility bug.Upper9527 commentedon Oct 21, 2026
已合并 #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 等待实际环境复测。