aws / aws-sdk-js-v3

Modularized AWS SDK for JavaScript.
Apache License 2.0
3.11k stars 578 forks source link

When Bedrock model is deprecated, SDK throws ValidationException instead of ResourceNotFoundException #6424

Open abhirpat opened 2 months ago

abhirpat commented 2 months ago

Describe the bug

When Bedrock model is deprecated from a region, SDK throws ValidationException instead of ResourceNotFoundException. This leads to confusion in error handling because according to SDK documentation.

Based on these definitions, the ResourceNotFoundException is more appropriate in this case. Also, note the ValidationException is recommended by Bedrock team to retry request when sessionId expires after 24 hours. When model not available, it can cause ThrottlingException if developer was not made through documentation.

Expected Behavior

Here the model resource was removed from the region so it should throw ResourceNotFoundException.

Current Behavior

The SDK throws ValidationException

Reproduction Steps

  1. Configure and code RetrieveAndGenerate API
  2. Make a request using a model that is not available in the region for e.g. Titan Text Premier not available in us-west-2 as of now
  3. Note that the error thrown is ValidationException

Possible Solution

When Bedrock model resource is not available in the region then it should throw ResourceNotFoundException instead of ValidationException.

Additional Information/Context

No response

SDK version used

latest

Environment details (OS name and version, etc.)

Node 18

zshzbh commented 2 months ago

Hey @abhirpat,

The links you provided are AWS SDK JS V3 related. It seems that you have a question for AWS SDK JS V3, could you please confirm the version of AWS SDK you used? I can redirect this ticket to JS SDK V3 repo.

Thanks! Maggie

abhirpat commented 2 months ago

Thanks @zshzbh . It's the latest version 3.638.0.

RanVaknin commented 1 month ago

When Bedrock model is deprecated from a region, SDK throws ValidationException instead of ResourceNotFoundException. This leads to confusion in error handling because according to SDK documentation.

The server is the one that returns this exception. The SDK has no discretion about which error to raise, instead the Bedrock API is the entity that is returning the wrong error.

This is not actionable by the SDK team. My suggestion is to submit documentation feedback to the Bedrock team directly using the feedback link

Thanks, Ran~