Trab
Trab4h ago

"use node" + sharp => Input buffer contains unsupported image format

I'm trying to do image compression. I use sharp which seems to work fine. But there is probably some problem with the convex/node environment I don't understand. The value of buffer keeps changing, when I use sharp, even if I use sharp without touching the buffer. - I do use "use node" - I don't import any other code - I use internalAction - When I run the same code with the same image in regular node, it works This returns correct byteLength
const req = await fetch(
"https://cdn.pixabay.com/photo/2025/06/05/09/42/forest-9642627_960_720.jpg",
);

const buffer = await response.arrayBuffer();
console.log(buffer.byteLength); // 94297
const req = await fetch(
"https://cdn.pixabay.com/photo/2025/06/05/09/42/forest-9642627_960_720.jpg",
);

const buffer = await response.arrayBuffer();
console.log(buffer.byteLength); // 94297
This returns different byteLength
const req = await fetch(
"https://cdn.pixabay.com/photo/2025/06/05/09/42/forest-9642627_960_720.jpg",
);

const buffer = await response.arrayBuffer();
console.log(buffer.byteLength); // 169475

sharp({
text: {
text: "Hello, world!",
width: 400,
height: 300,
},
});
const req = await fetch(
"https://cdn.pixabay.com/photo/2025/06/05/09/42/forest-9642627_960_720.jpg",
);

const buffer = await response.arrayBuffer();
console.log(buffer.byteLength); // 169475

sharp({
text: {
text: "Hello, world!",
width: 400,
height: 300,
},
});
This fails
const response = await fetch(
"https://cdn.pixabay.com/photo/2025/06/05/09/42/forest-9642627_960_720.jpg",
);

const buffer = await response.arrayBuffer();
console.log(buffer.byteLength); // 169475

// Uncaught Error: Input buffer contains unsupported image format
const metadata = await sharp(buffer).metadata();
const response = await fetch(
"https://cdn.pixabay.com/photo/2025/06/05/09/42/forest-9642627_960_720.jpg",
);

const buffer = await response.arrayBuffer();
console.log(buffer.byteLength); // 169475

// Uncaught Error: Input buffer contains unsupported image format
const metadata = await sharp(buffer).metadata();
1 Reply
Convex Bot
Convex Bot4h ago
Thanks for posting in <#1088161997662724167>. Reminder: If you have a Convex Pro account, use the Convex Dashboard to file support tickets. - Provide context: What are you trying to achieve, what is the end-user interaction, what are you seeing? (full error message, command output, etc.) - Use search.convex.dev to search Docs, Stack, and Discord all at once. - Additionally, you can post your questions in the Convex Community's <#1228095053885476985> channel to receive a response from AI. - Avoid tagging staff unless specifically instructed. Thank you!

Did you find this page helpful?