Batch update fails with internalServerError for production-style URLs
- 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.