From d3706e20c42bcb41466e34d6ec00189c28932dfe Mon Sep 17 00:00:00 2001 From: Osarogie <6781915+osarogie@users.noreply.github.com> Date: Mon, 8 Sep 2025 23:34:49 +0100 Subject: [PATCH 1/4] fix validation exception --- packages/azure-store/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/azure-store/src/index.ts b/packages/azure-store/src/index.ts index c80ecd5f..b9587ca0 100644 --- a/packages/azure-store/src/index.ts +++ b/packages/azure-store/src/index.ts @@ -117,7 +117,7 @@ export class AzureStore extends DataStore { const upload = JSON.parse(propertyData.metadata.upload) as Upload // Metadata is base64 encoded to avoid errors for non-ASCII characters // so we need to decode it separately - upload.metadata = Metadata.parse(JSON.stringify(upload.metadata ?? {})) + upload.metadata = upload.metadata ? Metadata.parse(upload.metadata) : {} await this.cache.set(appendBlobClient.url, upload) From a22497939866eacfb83a9987081e5918c9c0b214 Mon Sep 17 00:00:00 2001 From: Merlijn Vos Date: Wed, 24 Sep 2025 10:16:12 +0200 Subject: [PATCH 2/4] Add changeset --- .changeset/small-pillows-hug.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/small-pillows-hug.md diff --git a/.changeset/small-pillows-hug.md b/.changeset/small-pillows-hug.md new file mode 100644 index 00000000..a5eebe29 --- /dev/null +++ b/.changeset/small-pillows-hug.md @@ -0,0 +1,5 @@ +--- +"@tus/azure-store": patch +--- + +Fix metadata parsing bug From 5461fc01dd4f2c2c204706adef43ab3d04280cff Mon Sep 17 00:00:00 2001 From: Emmanuel Nosakhare <6781915+osarogie@users.noreply.github.com> Date: Tue, 24 Feb 2026 13:30:23 +0100 Subject: [PATCH 3/4] Refactor metadata handling in AzureStore to ensure proper parsing of upload metadata --- packages/azure-store/src/index.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/azure-store/src/index.ts b/packages/azure-store/src/index.ts index b9587ca0..5f24ad3f 100644 --- a/packages/azure-store/src/index.ts +++ b/packages/azure-store/src/index.ts @@ -117,7 +117,15 @@ export class AzureStore extends DataStore { const upload = JSON.parse(propertyData.metadata.upload) as Upload // Metadata is base64 encoded to avoid errors for non-ASCII characters // so we need to decode it separately - upload.metadata = upload.metadata ? Metadata.parse(upload.metadata) : {} + let metadataStr + if (typeof upload.metadata === 'string') { + metadataStr = upload.metadata + } else if (upload.metadata && typeof upload.metadata === 'object') { + metadataStr = JSON.stringify(upload.metadata??{}) + } else { + metadataStr = '{}' + } + upload.metadata = Metadata.parse(metadataStr) await this.cache.set(appendBlobClient.url, upload) From 20a36b4a59aeed764e7bab7a47e482f0b0aa1e54 Mon Sep 17 00:00:00 2001 From: Emmanuel Nosakhare <6781915+osarogie@users.noreply.github.com> Date: Tue, 24 Feb 2026 13:44:14 +0100 Subject: [PATCH 4/4] eslint fix --- packages/azure-store/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/azure-store/src/index.ts b/packages/azure-store/src/index.ts index 5f24ad3f..f0385e96 100644 --- a/packages/azure-store/src/index.ts +++ b/packages/azure-store/src/index.ts @@ -121,7 +121,7 @@ export class AzureStore extends DataStore { if (typeof upload.metadata === 'string') { metadataStr = upload.metadata } else if (upload.metadata && typeof upload.metadata === 'object') { - metadataStr = JSON.stringify(upload.metadata??{}) + metadataStr = JSON.stringify(upload.metadata ?? {}) } else { metadataStr = '{}' }