Open PrasantJillella opened 1 year ago
@edwin-huber Do you have any comments for the table batch delete issue?
@PrasantJillella Normally, your code should be based on the storage server returned error status code, instead of error message. Since the error message might not be so stable, and can change. Besides that, for the "0:" or "1:" in the error message, the number is the index of the failed operation (base 0). Like for "1:", the failed operation is the 2nd operation in the batch, so the index is 1.
Hi
I noticed that ErrorCode was not provided in this case, instead I see that there was ExtendedErrorInformation.ErrorCode present. ExtendedErrorInformation.ErrorCode = "InvalidOperation"
I was curious about this relation b/w ErrorCode and ExtendedErrorInformation.ErrorCode: Are these two interchangeable, I mean if one is empty then does the other always populate in case of an exception. Also can we consider both of them to provide the same information? Also is there a case where both provide values that are different?
I did go through ExtendedErrorInformation.ErrorCode documentation, but it does not answer this question of my so wanted to check if you had any idea.
@PrasantJillella
For "ExtendedErrorInformation.ErrorCode", I think you get it from SDK interface, since Azurite doesn't return error in this structure. You might should check with the SDK owner to see how they parse the "ExtendedErrorInformation.ErrorCode", and know the relationship between "ExtendedErrorInformation.ErrorCode" and "ErrorCode".
Which service(blob, file, queue, table) does this issue concern?
Table
Which version of the Azurite was used?
3.22.0
Where do you get Azurite? (npm, DockerHub, NuGet, Visual Studio Code Extension)
npm
What's the Node.js version?
v18.14.2
What problem was encountered?
When we try to delete a record and provide invalid Etag value in the delete request then a 400 Bad Request error gets throw as expected.
But when it comes to the Error Message, Previously when using Azure Storage Emulator the message returned was:
"0:The etag value 'MalformedETag' specified in one of the request headers is not valid. Please make sure only one etag value is specified and is valid."
Now when using Azurite the message returned is:'1:'
which does not seem to be correct.Steps to reproduce the issue?
-> Insert a record in table. -> Try deleting the same record from table but provide invalid Etag value in the delete request. value provided by me for etag is "MalformedETag"
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:
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?
No