Azure / Azure/Azurite

Batch update fails with internalServerError for production-style URLs

Open
#2,322 4 comments 0 reactions 2 assignees Claimed by @edwin-huber View on GitHub
bug table-batch table-storage
Dominant language
TypeScript
Stars
2.3k
Forks
393
Avg merge
1d 20h
Merged PRs (30d)
36

Description

### Which service(blob, file, queue, table) does this issue concern?

The **table** service.

### Which version of the Azurite was used?

[Azurite v3.27.0](https://github.com/Azure/Azurite/releases/tag/v3.27.0)

### Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)

DuckerHub

### What's the Node.js version?

N/A

### What problem was encountered?

I am using Orleans to connect to Azurite using a production-style URL. Orleans tries to do some batch operations and Azurite fails for those with the 500 status code. Enabling debug logs surfaces the error: `Couldn't extract path from URL in sub-Request`.

### Steps to reproduce the issue?

Use a batch operation with a production-style URL.

### Have you found a mitigation/solution?

Investigating the source code of Azurite, starting from the line of [code that throws that error](https://github.com/Azure/Azurite/blob/62ea623a79ba6860f49a30f66971b67edd5991c6/src/table/batch/TableBatchSerialization.ts#L80) takes us to [the implementation of `extractPath`](https://github.com/Azure/Azurite/blob/62ea623a79ba6860f49a30f66971b67edd5991c6/src/table/batch/BatchSerialization.ts#L76) which does not seem to support production-style URLs, but it always assumes that the account name is/should be in the path.

**Solution**: Fix `extractPath` so that it supports production-style URLs.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.