cloudflare / cloudflare/developer-platform

🐛 BUG: R2 Multipart upload doesn't return custom metadata

Open
#3 3 comments 1 reaction 0 assignees View on GitHub
product:r2
Dominant language
No language data
Stars
1
Forks
0
PR merge metrics
No merged PRs in 30d

Description

### Which Cloudflare product(s) does this pertain to?

R2

### What version(s) of the tool(s) are you using?

3.57.2 Wrangler

### What version of Node are you using?

20.12.2

### What operating system and version are you using?

Windows 11

### Describe the Bug

### Observed behavior
Custom metadata is missing when completing a R2 multipart upload. However when fetching the head of the r2Object the metadata is there. Strangely enough when running locally with `wrangler pages dev` the example works as expected. Only once you deploy your site the custom metadata is missing.

```js
const upload = await env.BUCKET.createMultipartUpload(key, {
customMetadata: {
hallo: 'zwallo',
},
});

const uploadPart = await upload.uploadPart(1, request.body);

const r2Object = await upload.complete([uploadPart]);
console.log(r2Object.customMetadata) // logs an empty object: {}

const r2Head = await env.BUCKET.head(key);
console.log(r2Head.customMetadata) // logs the correct metadata: {hallo: "zwallo"}
```

### Expected behavior
`multipartUpload.complete()` should return an `R2Object` with the field `customMetadata` populated

### Steps to reproduce
1. clone repository
2. run `cd multipart-upload-missing-metadata && npm i`
3. run `npm run dev` for a working example
4. run `npm run deploy` for the example to fail on the deployed site

### Please provide a link to a minimal reproduction

https://github.com/YannicEl/cloudflare_worker_bugs/tree/main/multipart-upload-missing-metadata

### Please provide any relevant error logs

_No response_

Contributor guide

Open the contributing guide

Research direction

Start in the multipart-upload-missing-metadata reproduction and install its dependencies with npm i. Run npm run dev and npm run deploy, then compare the customMetadata returned by multipartUpload.complete() with the metadata from head(); done means the deployed example returns the populated metadata.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
api, backend, cloud
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.