Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Currently when decoding HTTP error, if the server returns an error that is not an rpc.StatusDetails, it will thrown an error about it instead of returning the real error. This is because it can't find the proto, the decoder is only using the error details loaded from status.json in https://github.com/googleapis/gax-nodejs/blob/main/gax/src/googleError.ts#L175). This PR will fix that.
Impact
Instead of throwing an error about the custom/unknown proto for the error, we are a going to convert it to a ResourceInfo error and put in the description the details from the custom/unknown error.
Testing
Added unit test for custom/unknown errors in this PR.
Additional Information
It seems RPC catch these kind of errors on https://github.com/googleapis/gax-nodejs/blob/main/gax/src/googleError.ts#L213, it is just ignoring but we need to show the info of the custom error. There is an internal bug about it, will work on that later.
Checklist
Fixes #issue_number_goes_here 🦕 (no added, not sure if we can publish internal bugs here).