Problem
Blob paste and clone fail 100% of the time on emulator connections. The SAS builder requests the optional t (tag) permission, but emulator SAS is pinned to service version 2018-03-28, which predates that permission. The result is a client-side RangeError -- Azurite is never contacted.
Container-level paste is already gated for emulator connections, but blob-level paste is not, so the UI offers an action that cannot succeed.
Evidence
PasteBlobs.ts:228 -- requests optional t, branching on connection type rather than on whether the target is the emulator
blob-extension/src/index.ts:520-522 -- pins emulatorApiVersion (defined line 118) to 2018-03-28
blob-extension/src/index.ts:650-657 -- the existing container-level gate, canPasteBlobContainerToBlobContainersNode, which has no blob-level equivalent
Suggested fix
Either omit the t permission when the target is the emulator, or extend the existing gate to blob-level paste so the action is not offered.
Found while automating the blob paste E2E cases.
Problem
Blob paste and clone fail 100% of the time on emulator connections. The SAS builder requests the optional
t(tag) permission, but emulator SAS is pinned to service version2018-03-28, which predates that permission. The result is a client-sideRangeError-- Azurite is never contacted.Container-level paste is already gated for emulator connections, but blob-level paste is not, so the UI offers an action that cannot succeed.
Evidence
PasteBlobs.ts:228-- requests optionalt, branching on connection type rather than on whether the target is the emulatorblob-extension/src/index.ts:520-522-- pinsemulatorApiVersion(defined line 118) to2018-03-28blob-extension/src/index.ts:650-657-- the existing container-level gate,canPasteBlobContainerToBlobContainersNode, which has no blob-level equivalentSuggested fix
Either omit the
tpermission when the target is the emulator, or extend the existing gate to blob-level paste so the action is not offered.Found while automating the blob paste E2E cases.