diff --git a/extensions/matrix/src/matrix/monitor/media.ts b/extensions/matrix/src/matrix/monitor/media.ts index b7ce8e21529..baf366186c4 100644 --- a/extensions/matrix/src/matrix/monitor/media.ts +++ b/extensions/matrix/src/matrix/monitor/media.ts @@ -30,11 +30,13 @@ async function fetchMatrixMediaBuffer(params: { // Use the client's download method which handles auth try { const result = await params.client.downloadContent(params.mxcUrl); - const buffer = result.data; + const raw = result.data ?? result; + const buffer = Buffer.isBuffer(raw) ? raw : Buffer.from(raw); + if (buffer.byteLength > params.maxBytes) { throw new Error("Matrix media exceeds configured size limit"); } - return { buffer: Buffer.from(buffer) }; + return { buffer, headerType: result.contentType }; } catch (err) { throw new Error(`Matrix media download failed: ${String(err)}`, { cause: err }); }