question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Failed table transaction returns HTTP 400 instead of HTTP 409

See original GitHub issue

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

table

Which version of the Azurite was used?

3.12.0

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

npm

What’s the Node.js version?

v14.15.5

What problem was encountered?

When submitting a batch transaction to Table storage that contains a duplicate entity (i.e. “add” on an entity that already exists), the wrong response is returned causing the SDK to throw an unexpected exception. This works fine on Azure and the legacy emulator.

Unhandled exception. System.IO.InvalidDataException: Invalid header line: HTTP/1.1 400 Bad Request
   at Azure.Core.MultipartReader.ReadHeadersAsync(CancellationToken cancellationToken)
   at Azure.Core.MultipartReader.ReadNextSectionAsync(CancellationToken cancellationToken)
   at Azure.Core.Multipart.GetNextSectionAsync(MultipartReader reader, Boolean async, CancellationToken cancellationToken)
   at Azure.Core.Multipart.ParseAsync(Stream batchContent, String batchContentType, Boolean expectBoundariesWithCRLF, Boolean async, CancellationToken cancellationToken)
   at Azure.Data.Tables.TableRestClient.SendBatchRequestAsync(HttpMessage message, CancellationToken cancellationToken)
   at Azure.Data.Tables.TableClient.SubmitTransactionInternalAsync(IEnumerable`1 transactionalBatch, Guid batchId, Guid changesetId, Boolean async, CancellationToken cancellationToken)
   at Azure.Data.Tables.TableClient.SubmitTransactionAsync(IEnumerable`1 transactionActions, CancellationToken cancellationToken)
   at ConsoleApp1.Program.Main(String[] args) in C:\Users\joelv\Desktop\ConsoleApp1\ConsoleApp1\Program.cs:line 25
   at ConsoleApp1.Program.<Main>(String[] args)

Steps to reproduce the issue?

using System;
using System.Threading.Tasks;
using Azure.Data.Tables;

namespace ConsoleApp1
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var client = new TableServiceClient("UseDevelopmentStorage=true");
            var table = client.GetTableClient("test");
            await table.CreateIfNotExistsAsync();

            var pk = Guid.NewGuid().ToString();
            await table.AddEntityAsync(new TableEntity(pk, "a"));

            var actions = new[]
            {
                new TableTransactionAction(TableTransactionActionType.Add, new TableEntity(pk, "a")),
            };

            try
            {
                await table.SubmitTransactionAsync(actions);
            }
            catch (TableTransactionFailedException ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

If possible, please provide the debug log using the -d parameter, replacing <pathtodebuglog> with an appropriate path for your OS, or review the instructions for docker containers:

2021-05-22T22:49:49.009Z 	 info: Azurite Blob service is starting on 127.0.0.1:10000
2021-05-22T22:49:49.010Z 	 info: AccountDataStore:init() Refresh accounts from environment variable AZURITE_ACCOUNTS with value undefined
2021-05-22T22:49:49.010Z 	 info: AccountDataStore:init() Fallback to default emulator account devstoreaccount1.
2021-05-22T22:49:49.025Z 	 info: BlobGCManager:start() Starting BlobGCManager. Set status to Initializing.
2021-05-22T22:49:49.025Z 	 info: BlobGCManager:start() Trigger mark and sweep loop. Set status to Running.
2021-05-22T22:49:49.025Z 	 info: BlobGCManager:markSweepLoop() Start next mark and sweep.
2021-05-22T22:49:49.025Z 	 info: BlobGCManager:markSweep() Get all extents.
2021-05-22T22:49:49.026Z 	 info: BlobGCManager:start() BlobGCManager successfully started.
2021-05-22T22:49:49.033Z 	 info: BlobGCManager:markSweep() Got 0 extents.
2021-05-22T22:49:49.033Z 	 info: BlobGCManager:markSweep() Get referred extents.
2021-05-22T22:49:49.034Z 	 info: BlobGCManager:markSweep() Got referred extents, unreferenced extents count is 0.
2021-05-22T22:49:49.034Z 	 info: BlobGCManager:markSweepLoop() Mark and sweep finished, taken 9ms.
2021-05-22T22:49:49.034Z 	 info: BlobGCManager:markSweepLoop() Sleep for 600000ms.
2021-05-22T22:49:49.035Z 	 info: Azurite Blob service successfully listens on http://127.0.0.1:10000
2021-05-22T22:49:49.036Z 	 info: Azurite Queue service is starting on 127.0.0.1:10001
2021-05-22T22:49:49.036Z 	 info: AccountDataStore:init() Refresh accounts from environment variable AZURITE_ACCOUNTS with value undefined
2021-05-22T22:49:49.036Z 	 info: AccountDataStore:init() Fallback to default emulator account devstoreaccount1.
2021-05-22T22:49:49.069Z 	 info: QueueGCManager:start() Starting QueueGCManager, set status to Initializing
2021-05-22T22:49:49.069Z 	 info: QueueGCManager:start() Trigger mark and sweep loop, set status to Running.
2021-05-22T22:49:49.069Z 	 info: QueueGCManager:markSweepLoop() Start new mark and sweep.
2021-05-22T22:49:49.069Z 	 info: QueueGCManger:markSweep() Get all extents.
2021-05-22T22:49:49.070Z 	 info: QueueGCManager:start() QueueGCManager successfully started.
2021-05-22T22:49:49.070Z 	 info: QueueGCManager:marksweep() Get 0 extents.
2021-05-22T22:49:49.070Z 	 info: QueueGCManager:markSweep() Get referred extents, then remove from allExtents.
2021-05-22T22:49:49.070Z 	 info: QueueGCManager:markSweep() Got referred extents, unreferenced extents count is 0.
2021-05-22T22:49:49.070Z 	 info: QueueGCManager:markSweepLoop() Mark and sweep finished, take 1ms.
2021-05-22T22:49:49.070Z 	 info: QueueGCManager:markSweepLoop() Sleep for 60000
2021-05-22T22:49:49.071Z 	 info: Azurite Queue service successfully listens on http://127.0.0.1:10001
2021-05-22T22:49:49.071Z 	 info: Azurite Table service is starting on 127.0.0.1:10002
2021-05-22T22:49:49.071Z 	 info: AccountDataStore:init() Refresh accounts from environment variable AZURITE_ACCOUNTS with value undefined
2021-05-22T22:49:49.071Z 	 info: AccountDataStore:init() Fallback to default emulator account devstoreaccount1.
2021-05-22T22:49:49.085Z 	 info: Azurite Table service successfully listens on http://127.0.0.1:10002
2021-05-22T22:49:50.604Z 08685052-3e54-454b-8930-f6b4df28f625 info: TableStorageContextMiddleware: RequestMethod=POST RequestURL=http://127.0.0.1/devstoreaccount1/Tables?$format=application%2Fjson%3Bodata%3Dminimalmetadata RequestHeaders:{"host":"127.0.0.1:10002","x-ms-version":"2019-02-02","dataserviceversion":"3.0","accept":"application/json; odata=minimalmetadata","x-ms-client-request-id":"a4ea8c9e-00fc-4fe6-9df0-0d04b51d2c7d","x-ms-return-client-request-id":"true","user-agent":"azsdk-net-Data.Tables/12.0.0-beta.8 (.NET Core 3.1.15; Microsoft Windows 10.0.19042)","x-ms-date":"Sat, 22 May 2021 22:49:50 GMT","authorization":"SharedKeyLite devstoreaccount1:6VdxVnL2DBFVNk3eIvQ+bTqJxW5ONhDLKFoaxi6jUbo=","content-type":"application/json; odata=nometadata","content-length":"20"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1
2021-05-22T22:49:50.605Z 08685052-3e54-454b-8930-f6b4df28f625 debug: tableStorageContextMiddleware: Dispatch pattern string: /Tables
2021-05-22T22:49:50.605Z 08685052-3e54-454b-8930-f6b4df28f625 info: tableStorageContextMiddleware: Account=devstoreaccount1 tableName=undefined
2021-05-22T22:49:50.605Z 08685052-3e54-454b-8930-f6b4df28f625 verbose: DispatchMiddleware: Dispatching request...
2021-05-22T22:49:50.606Z 08685052-3e54-454b-8930-f6b4df28f625 info: DispatchMiddleware: Operation=Table_Create
2021-05-22T22:49:50.606Z 08685052-3e54-454b-8930-f6b4df28f625 verbose: AuthenticationMiddlewareFactory:createAuthenticationMiddleware() Validating authentications.
2021-05-22T22:49:50.606Z 08685052-3e54-454b-8930-f6b4df28f625 info: TableSharedKeyLiteAuthenticator:validate() Start validation against account shared key authentication.
2021-05-22T22:49:50.607Z 08685052-3e54-454b-8930-f6b4df28f625 info: TableSharedKeyLiteAuthenticator:validate() [STRING TO SIGN]:"Sat, 22 May 2021 22:49:50 GMT\n/devstoreaccount1/devstoreaccount1/Tables"
2021-05-22T22:49:50.607Z 08685052-3e54-454b-8930-f6b4df28f625 info: TableSharedKeyLiteAuthenticator:validate() Calculated authentication header based on key1: SharedKeyLite devstoreaccount1:6VdxVnL2DBFVNk3eIvQ+bTqJxW5ONhDLKFoaxi6jUbo=
2021-05-22T22:49:50.607Z 08685052-3e54-454b-8930-f6b4df28f625 info: TableSharedKeyLiteAuthenticator:validate() Signature 1 matched.
2021-05-22T22:49:50.608Z 08685052-3e54-454b-8930-f6b4df28f625 verbose: DeserializerMiddleware: Start deserializing...
2021-05-22T22:49:50.610Z 08685052-3e54-454b-8930-f6b4df28f625 debug: deserialize(): Raw request body string is (removed all empty characters) {"TableName":"test"}
2021-05-22T22:49:50.611Z 08685052-3e54-454b-8930-f6b4df28f625 info: HandlerMiddleware: DeserializedParameters={"options":{"queryOptions":{"format":"application/json;odata=minimalmetadata"},"requestId":"a4ea8c9e-00fc-4fe6-9df0-0d04b51d2c7d","dataServiceVersion":"3.0"},"version":"2019-02-02","tableProperties":{"tableName":"test"},"body":"ReadableStream"}
2021-05-22T22:49:50.612Z 08685052-3e54-454b-8930-f6b4df28f625 verbose: SerializerMiddleware: Start serializing...
2021-05-22T22:49:50.613Z 08685052-3e54-454b-8930-f6b4df28f625 debug: Serializer: Raw response body string is {"odata.metadata":"http://127.0.0.1:10002/devstoreaccount1/$metadata#Tables/@Element","TableName":"test"}
2021-05-22T22:49:50.613Z 08685052-3e54-454b-8930-f6b4df28f625 info: Serializer: Start returning stream body.
2021-05-22T22:49:50.613Z 08685052-3e54-454b-8930-f6b4df28f625 info: EndMiddleware: End response. TotalTimeInMS=9 StatusCode=201 StatusMessage=Created Headers={"server":"Azurite-Table/3.12.0","content-type":"application/json;odata=minimalmetadata","x-ms-client-request-id":"a4ea8c9e-00fc-4fe6-9df0-0d04b51d2c7d","x-ms-request-id":"08685052-3e54-454b-8930-f6b4df28f625","x-ms-version":"2020-06-12","date":"Sat, 22 May 2021 22:49:50 GMT","preference-applied":"return-content"}
2021-05-22T22:49:50.638Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: TableStorageContextMiddleware: RequestMethod=POST RequestURL=http://127.0.0.1/devstoreaccount1/test?$format=application%2Fjson%3Bodata%3Dminimalmetadata RequestHeaders:{"host":"127.0.0.1:10002","x-ms-version":"2019-02-02","dataserviceversion":"3.0","prefer":"return-no-content","accept":"application/json; odata=minimalmetadata","x-ms-client-request-id":"ae4af697-2664-4635-b06e-64820eefface","x-ms-return-client-request-id":"true","user-agent":"azsdk-net-Data.Tables/12.0.0-beta.8 (.NET Core 3.1.15; Microsoft Windows 10.0.19042)","x-ms-date":"Sat, 22 May 2021 22:49:50 GMT","authorization":"SharedKeyLite devstoreaccount1:jiUVQ7VyIq74T0M3pPlqNZ7+cb8wTTamlhqH+jt6rzU=","content-type":"application/json; odata=nometadata","content-length":"68"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1
2021-05-22T22:49:50.638Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f debug: tableStorageContextMiddleware: Dispatch pattern string: /test
2021-05-22T22:49:50.638Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: tableStorageContextMiddleware: Account=devstoreaccount1 tableName=test
2021-05-22T22:49:50.638Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f verbose: DispatchMiddleware: Dispatching request...
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: DispatchMiddleware: Operation=Table_InsertEntity
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f verbose: AuthenticationMiddlewareFactory:createAuthenticationMiddleware() Validating authentications.
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: TableSharedKeyLiteAuthenticator:validate() Start validation against account shared key authentication.
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: TableSharedKeyLiteAuthenticator:validate() [STRING TO SIGN]:"Sat, 22 May 2021 22:49:50 GMT\n/devstoreaccount1/devstoreaccount1/test"
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: TableSharedKeyLiteAuthenticator:validate() Calculated authentication header based on key1: SharedKeyLite devstoreaccount1:jiUVQ7VyIq74T0M3pPlqNZ7+cb8wTTamlhqH+jt6rzU=
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: TableSharedKeyLiteAuthenticator:validate() Signature 1 matched.
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f verbose: DeserializerMiddleware: Start deserializing...
2021-05-22T22:49:50.639Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f debug: deserialize(): Raw request body string is (removed all empty characters) {"PartitionKey":"4c1112d9-01c1-4aea-a157-e9d6fc177428","RowKey":"a"}
2021-05-22T22:49:50.640Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: HandlerMiddleware: DeserializedParameters={"options":{"queryOptions":{"format":"application/json;odata=minimalmetadata"},"requestId":"ae4af697-2664-4635-b06e-64820eefface","dataServiceVersion":"3.0","responsePreference":"return-no-content","tableEntityProperties":{"PartitionKey":"4c1112d9-01c1-4aea-a157-e9d6fc177428","RowKey":"a"}},"version":"2019-02-02","body":"ReadableStream"}
2021-05-22T22:49:50.641Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f verbose: SerializerMiddleware: Start serializing...
2021-05-22T22:49:50.641Z 4afe6a18-edf9-47bd-bd41-8d71dacb1a3f info: EndMiddleware: End response. TotalTimeInMS=3 StatusCode=204 StatusMessage=undefined Headers={"server":"Azurite-Table/3.12.0","content-type":"application/json;odata=minimalmetadata","x-ms-client-request-id":"ae4af697-2664-4635-b06e-64820eefface","x-ms-request-id":"4afe6a18-edf9-47bd-bd41-8d71dacb1a3f","x-ms-version":"2020-06-12","date":"Sat, 22 May 2021 22:49:50 GMT","etag":"W/\"datetime'2021-05-22T22%3A49%3A50.6380000Z'\"","preference-applied":"return-no-content"}
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: TableStorageContextMiddleware: RequestMethod=POST RequestURL=http://127.0.0.1/devstoreaccount1/$batch RequestHeaders:{"host":"127.0.0.1:10002","x-ms-version":"2019-02-02","dataserviceversion":"3.0","x-ms-client-request-id":"f3cb744f-99fb-4941-9a51-e1697ecdd46c","x-ms-return-client-request-id":"true","user-agent":"azsdk-net-Data.Tables/12.0.0-beta.8 (.NET Core 3.1.15; Microsoft Windows 10.0.19042)","x-ms-date":"Sat, 22 May 2021 22:49:50 GMT","authorization":"SharedKeyLite devstoreaccount1:65tcpOKjunBlIjJmIC6hOhCCiqZR45qGMifpymVbEvo=","content-type":"multipart/mixed; boundary=batch_78200a88-ec70-4395-88a8-8f8e2003852d","content-length":"734"} ClientIP=127.0.0.1 Protocol=http HTTPVersion=1.1
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 debug: tableStorageContextMiddleware: Dispatch pattern string: /$batch
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: tableStorageContextMiddleware: Account=devstoreaccount1 tableName=$batch
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 verbose: DispatchMiddleware: Dispatching request...
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: DispatchMiddleware: Operation=Table_Batch
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 verbose: AuthenticationMiddlewareFactory:createAuthenticationMiddleware() Validating authentications.
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: TableSharedKeyLiteAuthenticator:validate() Start validation against account shared key authentication.
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: TableSharedKeyLiteAuthenticator:validate() [STRING TO SIGN]:"Sat, 22 May 2021 22:49:50 GMT\n/devstoreaccount1/devstoreaccount1/$batch"
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: TableSharedKeyLiteAuthenticator:validate() Calculated authentication header based on key1: SharedKeyLite devstoreaccount1:65tcpOKjunBlIjJmIC6hOhCCiqZR45qGMifpymVbEvo=
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: TableSharedKeyLiteAuthenticator:validate() Signature 1 matched.
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 verbose: DeserializerMiddleware: Start deserializing...
2021-05-22T22:49:50.653Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: HandlerMiddleware: DeserializedParameters={"version":"2019-02-02","options":{"requestId":"f3cb744f-99fb-4941-9a51-e1697ecdd46c","dataServiceVersion":"3.0"},"multipartContentType":"multipart/mixed; boundary=batch_78200a88-ec70-4395-88a8-8f8e2003852d","contentLength":734,"body":"ReadableStream"}
2021-05-22T22:49:50.654Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 debug: TableHandler:batch() Raw request string is "--batch_78200a88-ec70-4395-88a8-8f8e2003852d\r\nContent-Type: multipart/mixed; boundary=changeset_1520cd0b-81b7-435d-ab1d-2b8db58f9e40\r\n\r\n--changeset_1520cd0b-81b7-435d-ab1d-2b8db58f9e40\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\n\r\nPOST http://127.0.0.1:10002/devstoreaccount1/test?$format=application%2Fjson%3Bodata%3Dminimalmetadata HTTP/1.1\r\nHost: 127.0.0.1\r\nx-ms-version: 2019-02-02\r\nDataServiceVersion: 3.0\r\nPrefer: return-no-content\r\nAccept: application/json;odata=minimalmetadata\r\nContent-Type: application/json;odata=nometadata\r\n\r\n{\"PartitionKey\":\"4c1112d9-01c1-4aea-a157-e9d6fc177428\",\"RowKey\":\"a\"}\r\n--changeset_1520cd0b-81b7-435d-ab1d-2b8db58f9e40--\r\n\r\n--batch_78200a88-ec70-4395-88a8-8f8e2003852d--\r\n"
2021-05-22T22:49:50.656Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 debug: TableHandler:batch() Raw response string is "--batchresponse_78200a88-ec70-4395-88a8-8f8e2003852d\r\nContent-Type: multipart/mixed; boundary=changesetresponse_1520cd0b-81b7-435d-ab1d-2b8db58f9e40\r\n\r\n--changesetresponse_1520cd0b-81b7-435d-ab1d-2b8db58f9e40changesetresponse_1520cd0b-81b7-435d-ab1d-2b8db58f9e40\r\nHTTP/1.1 400 Bad Request\r\nContent-ID: 1\r\nDataServiceVersion: 3.0;\r\nContent-Type: application/json;odata=minimalmetadata;charset=utf-8\r\n\r\n{\"odata.error\":{\"code\":\"EntityAlreadyExist\",\"message\":{\"lang\":\"en-US\",\"value\":\"The specified entity already exists.\\nRequestId:e95685cc-85df-4f65-94a2-dd4a2f2e33a6\\nTime:2021-05-22T22:49:50.656Z\"}}}\r\n\r\n--changesetresponse_1520cd0b-81b7-435d-ab1d-2b8db58f9e40--\r\n--batchresponse_78200a88-ec70-4395-88a8-8f8e2003852d--\r\n"
2021-05-22T22:49:50.656Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 verbose: SerializerMiddleware: Start serializing...
2021-05-22T22:49:50.656Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: Serializer: Start returning stream body.
2021-05-22T22:49:50.657Z e95685cc-85df-4f65-94a2-dd4a2f2e33a6 info: EndMiddleware: End response. TotalTimeInMS=4 StatusCode=202 StatusMessage=Accepted Headers={"server":"Azurite-Table/3.12.0","content-type":"multipart/mixed; boundary=batchresponse_78200a88-ec70-4395-88a8-8f8e2003852d","x-ms-request-id":"e95685cc-85df-4f65-94a2-dd4a2f2e33a6","x-ms-version":"2020-06-12","date":"Sat, 22 May 2021 22:49:50 GMT"}
2021-05-22T22:49:54.171Z 	 info: Azurite Blob service is closing...
2021-05-22T22:49:54.171Z 	 info: Azurite Queue service is closing...
2021-05-22T22:49:54.171Z 	 info: Azurite Table service is closing...
2021-05-22T22:49:54.172Z 	 info: BlobGCManager:close() Start closing BlobGCManager. Set status to Closing.
2021-05-22T22:49:54.172Z 	 info: QueueGCManager:close() Start closing QueueGCManager, set status to Closing.
2021-05-22T22:49:54.172Z 	 info: BlobGCManager:start() Mark and sweep loop is closed.
2021-05-22T22:49:54.172Z 	 info: BlobGCManager:close() BlobGCManager successfully closed. Set status to Closed.
2021-05-22T22:49:54.172Z 	 info: QueueGCManager:start() Mark and sweep loop is closed.
2021-05-22T22:49:54.172Z 	 info: QueueGCManager:close() QueueGCManager successfully closed, set status to Closed.
2021-05-22T22:49:54.172Z 	 info: Azurite Table service successfully closed
2021-05-22T22:49:54.173Z 	 info: Azurite Blob service successfully closed
2021-05-22T22:49:54.173Z 	 info: Azurite Queue service successfully closed

Please be sure to remove any PII or sensitive information before sharing!
The debug log will log raw request headers and bodies, so that we can replay these against Azurite using REST and create tests to validate resolution.

Have you found a mitigation/solution?

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:6 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
joelverhagencommented, Nov 16, 2022

@gonzales91: I recommend opening a new issue about this bug you’ve found (if one does not already exist). This will help the Azurite team track the issue separately.

It sounds a bit like https://github.com/Azure/Azurite/issues/1215. Perhaps we generally need some input validation for table transactions: all PKs must be the same, rows keys must be unique, etc.

1reaction
gonzales91commented, Nov 16, 2022

Regarding this change, I ran into an issue that when we use a TableTransactionAction list with more than one item with the same RowKey during a transaction, we get a status of 409 (EntityAlreadyExists), but using the old emulator and also a real Azure table connection, I got a 400 (InvalidDuplicateRow). So I can assume that is not correct result

Read more comments on GitHub >

github_iconTop Results From Across the Web

Failed table transaction with multiple entities with same ...
Failed table transaction with multiple entities with same RowKey returns HTTP 409(EntityAlreadyExists) instead of HTTP 400(InvalidDuplicateRow) #1754.
Read more >
How To Fix the “409 Conflict” Error (5 Methods) - Kinsta
If you see a “409 Conflict” error, this is a 400 HTTP status code. In short, the request wasn't completed because of a...
Read more >
Status Code 400 (Bad Request) Explained & How to fix it - Ryte
The 400 (Bad Request) status code indicates that the server cannot or will not process the request due to something that is perceived...
Read more >
HTTP Status Codes for Azure Cosmos DB | Microsoft Learn
HTTP status and sub-status codes when using Azure Cosmos DB with REST API. ... 400 is also returned when the consistent level for...
Read more >
"409 Conflict" causes Runner to not run any jobs, and give up ...
409 Conflict errors are normal and expected in cases where you have multiple runners configured and trying to pick up the same job....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found