Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config_override results in DispatchFailure #901

Closed
anmlsngh opened this issue Sep 26, 2023 · 19 comments · Fixed by smithy-lang/smithy-rs#3156
Closed

config_override results in DispatchFailure #901

anmlsngh opened this issue Sep 26, 2023 · 19 comments · Fixed by smithy-lang/smithy-rs#3156
Labels
bug This issue is a bug. pending-release This issue will be fixed by an approved PR that hasn't been released yet.

Comments

@anmlsngh
Copy link

anmlsngh commented Sep 26, 2023

Describe the bug

I am trying to create a client with no credentials, then use config_override to pass in credentials on request. When trying to do config_override() to use new credentials for a call to KMS, the call results in a DispatchFailure. See code snippet for bug replication.

Expected Behavior

I expect the result of the call to KMS with config_override to give me back the correct decrypted result.

Current Behavior

The call using config_override returns

DispatchFailure(DispatchFailure { source: ConnectorError { kind: Other(None), source: NoMatchingAuthScheme, connection: Unknown } })

Reproduction Steps

use aws_sdk_kms::config::{Credentials, Region};
use aws_sdk_kms::Client;
use aws_sdk_kms::primitives::Blob;
use aws_credential_types::cache::CredentialsCache;

fn creds() -> Credentials {
    Credentials::new(
        "<Key ID>",
        "<Secret Key>",
        Some("<Session Token>".to_string()),
        None,
        "",
    )
}

#[tokio::main]
async fn main(){

    //Code to encrypt text (this works fine)

    let conf = aws_sdk_kms::Config::builder()
        .credentials_provider(creds())
        .region(Region::new("<region of KMS key>"))
        .build();

    let client = Client::from_conf(conf);

    let out = client
        .clone()
        .encrypt()
        .key_id("<Your KMS key>".to_owned())
        .plaintext(Blob::new("encrypted text".as_bytes().to_vec())) // text to be encrypted
        .send()
        .await;
    


    // Code to Decrypt the text that was encrypted above using an empty client, whose credentials get overridden 
    // on decrypt call (where issue arises)
    
    // Create a client with no credentials
    let conf = aws_sdk_kms::Config::builder().credentials_cache(CredentialsCache::no_caching()).build();
    let client = Client::from_conf(conf);

    // Create a configuration override to be used on decrypt call
    let override_config = aws_sdk_kms::Config::builder()
     .credentials_provider(creds())
     .credentials_cache(CredentialsCache::no_caching())
     .region(Region::new("<region of KMS key>"));


    // Decrypt call returns DispatchFailure when it should return the decrypted result
    let _result = client
     .decrypt()
     .ciphertext_blob(out.unwrap().ciphertext_blob().unwrap().clone())
     .customize()
     .await
     .unwrap()
     .config_override(override_config)
     .send()
     .await
     .unwrap();
}

Possible Solution

No response

Additional Information/Context

In code snippet replicating the problem, you will have to use your own KMS key and AWS credentials.

Version

├── aws-config v0.56.1
│   ├── aws-credential-types v0.56.1
│   │   ├── aws-smithy-async v0.56.1
│   │   ├── aws-smithy-types v0.56.1
│   ├── aws-http v0.56.1
│   │   ├── aws-credential-types v0.56.1 (*)
│   │   ├── aws-smithy-http v0.56.1
│   │   │   ├── aws-smithy-types v0.56.1 (*)
│   │   ├── aws-smithy-types v0.56.1 (*)
│   │   ├── aws-types v0.56.1
│   │   │   ├── aws-credential-types v0.56.1 (*)
│   │   │   ├── aws-smithy-async v0.56.1 (*)
│   │   │   ├── aws-smithy-client v0.56.1
│   │   │   │   ├── aws-smithy-async v0.56.1 (*)
│   │   │   │   ├── aws-smithy-http v0.56.1 (*)
│   │   │   │   ├── aws-smithy-http-tower v0.56.1
│   │   │   │   │   ├── aws-smithy-http v0.56.1 (*)
│   │   │   │   │   ├── aws-smithy-types v0.56.1 (*)
│   │   │   │   ├── aws-smithy-types v0.56.1 (*)
│   │   │   ├── aws-smithy-http v0.56.1 (*)
│   │   │   ├── aws-smithy-types v0.56.1 (*)
│   ├── aws-sdk-sso v0.30.0
│   │   ├── aws-credential-types v0.56.1 (*)
│   │   ├── aws-http v0.56.1 (*)
│   │   ├── aws-runtime v0.56.1
│   │   │   ├── aws-credential-types v0.56.1 (*)
│   │   │   ├── aws-http v0.56.1 (*)
│   │   │   ├── aws-sigv4 v0.56.1
│   │   │   │   ├── aws-smithy-http v0.56.1 (*)
│   │   │   ├── aws-smithy-async v0.56.1 (*)
│   │   │   ├── aws-smithy-http v0.56.1 (*)
│   │   │   ├── aws-smithy-runtime-api v0.56.1
│   │   │   │   ├── aws-smithy-async v0.56.1 (*)
│   │   │   │   ├── aws-smithy-http v0.56.1 (*)
│   │   │   │   ├── aws-smithy-types v0.56.1 (*)
│   │   │   ├── aws-smithy-types v0.56.1 (*)
│   │   │   ├── aws-types v0.56.1 (*)
│   │   ├── aws-smithy-async v0.56.1 (*)
│   │   ├── aws-smithy-client v0.56.1 (*)
│   │   ├── aws-smithy-http v0.56.1 (*)
│   │   ├── aws-smithy-json v0.56.1
│   │   │   └── aws-smithy-types v0.56.1 (*)
│   │   ├── aws-smithy-runtime v0.56.1
│   │   │   ├── aws-smithy-async v0.56.1 (*)
│   │   │   ├── aws-smithy-client v0.56.1 (*)
│   │   │   ├── aws-smithy-http v0.56.1 (*)
│   │   │   ├── aws-smithy-runtime-api v0.56.1 (*)
│   │   │   ├── aws-smithy-types v0.56.1 (*)
│   │   ├── aws-smithy-runtime-api v0.56.1 (*)
│   │   ├── aws-smithy-types v0.56.1 (*)
│   │   ├── aws-types v0.56.1 (*)
│   ├── aws-sdk-sts v0.30.0
│   │   ├── aws-credential-types v0.56.1 (*)
│   │   ├── aws-http v0.56.1 (*)
│   │   ├── aws-runtime v0.56.1 (*)
│   │   ├── aws-smithy-async v0.56.1 (*)
│   │   ├── aws-smithy-client v0.56.1 (*)
│   │   ├── aws-smithy-http v0.56.1 (*)
│   │   ├── aws-smithy-json v0.56.1 (*)
│   │   ├── aws-smithy-query v0.56.1
│   │   │   ├── aws-smithy-types v0.56.1 (*)
│   │   ├── aws-smithy-runtime v0.56.1 (*)
│   │   ├── aws-smithy-runtime-api v0.56.1 (*)
│   │   ├── aws-smithy-types v0.56.1 (*)
│   │   ├── aws-smithy-xml v0.56.1
│   │   ├── aws-types v0.56.1 (*)
│   ├── aws-smithy-async v0.56.1 (*)
│   ├── aws-smithy-client v0.56.1 (*)
│   ├── aws-smithy-http v0.56.1 (*)
│   ├── aws-smithy-http-tower v0.56.1 (*)
│   ├── aws-smithy-json v0.56.1 (*)
│   ├── aws-smithy-types v0.56.1 (*)
│   ├── aws-types v0.56.1 (*)
├── aws-credential-types v0.56.1 (*)
├── aws-sdk-kms v0.31.1
│   ├── aws-credential-types v0.56.1 (*)
│   ├── aws-http v0.56.1 (*)
│   ├── aws-runtime v0.56.1 (*)
│   ├── aws-smithy-async v0.56.1 (*)
│   ├── aws-smithy-client v0.56.1 (*)
│   ├── aws-smithy-http v0.56.1 (*)
│   ├── aws-smithy-json v0.56.1 (*)
│   ├── aws-smithy-runtime v0.56.1 (*)
│   ├── aws-smithy-runtime-api v0.56.1 (*)
│   ├── aws-smithy-types v0.56.1 (*)
│   ├── aws-types v0.56.1 (*)
├── aws-types v0.56.1 (*)

Environment details (OS name and version, etc.)

Amazon Linux 2

Logs

2023-09-26T20:27:11.886145Z DEBUG hyper_rustls::config: with_native_roots processed 185 valid and 0 invalid certs    
2023-09-26T20:27:11.919817Z DEBUG invoke{service=kms operation=Encrypt}:try_op: aws_smithy_runtime_api::client::interceptors::context: entering 'serialization' phase
2023-09-26T20:27:11.919964Z DEBUG invoke{service=kms operation=Encrypt}:try_op: aws_smithy_runtime_api::client::interceptors::context: entering 'before transmit' phase
2023-09-26T20:27:11.920035Z DEBUG invoke{service=kms operation=Encrypt}:try_op: aws_smithy_runtime::client::retries::strategy::standard: no client rate limiter configured, so no token is required for the initial request.
2023-09-26T20:27:11.920062Z DEBUG invoke{service=kms operation=Encrypt}:try_op: aws_smithy_runtime::client::orchestrator: retry strategy has OKed initial request
2023-09-26T20:27:11.920094Z DEBUG invoke{service=kms operation=Encrypt}:try_op: aws_smithy_runtime::client::orchestrator: beginning attempt #1
2023-09-26T20:27:11.920155Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: aws_smithy_runtime::client::orchestrator::endpoints: will use endpoint Endpoint { url: "https://kms.us-east-1.amazonaws.com", headers: {}, properties: {} }
2023-09-26T20:27:11.920435Z  INFO invoke{service=kms operation=Encrypt}:try_op:try_attempt:lazy_load_credentials: aws_credential_types::cache::lazy_caching: credentials cache miss occurred; added new AWS credentials (took Ok(33.358µs))
2023-09-26T20:27:11.920501Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: aws_credential_types::cache::lazy_caching: loaded credentials
2023-09-26T20:27:11.921383Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: aws_smithy_runtime_api::client::interceptors::context: entering 'transmit' phase
2023-09-26T20:27:11.921629Z DEBUG hyper::client::connect::dns: resolving host="kms.us-east-1.amazonaws.com"
2023-09-26T20:27:11.921838Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: hyper::client::connect::http: connecting to 67.220.245.47:443
2023-09-26T20:27:11.988170Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: hyper::client::connect::http: connected to 67.220.245.47:443
2023-09-26T20:27:11.988228Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: rustls::client::hs: No cached session for DnsName("kms.us-east-1.amazonaws.com")    
2023-09-26T20:27:11.988507Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: rustls::client::hs: Not resuming any session    
2023-09-26T20:27:12.054991Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384    
2023-09-26T20:27:12.055037Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: rustls::client::tls13: Not resuming    
2023-09-26T20:27:12.055790Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck, Protocols([ProtocolName(687474702f312e31)])]    
2023-09-26T20:27:12.055835Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: rustls::client::hs: ALPN protocol is Some(b"http/1.1")    
2023-09-26T20:27:12.056693Z DEBUG hyper::proto::h1::io: flushed 1563 bytes
2023-09-26T20:27:12.201324Z DEBUG hyper::proto::h1::io: parsed 8 headers
2023-09-26T20:27:12.201351Z DEBUG hyper::proto::h1::conn: incoming body is content-length (369 bytes)
2023-09-26T20:27:12.201418Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: aws_smithy_runtime_api::client::interceptors::context: entering 'before deserialization' phase
2023-09-26T20:27:12.201472Z DEBUG hyper::proto::h1::conn: incoming body completed
2023-09-26T20:27:12.201514Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: aws_smithy_runtime_api::client::interceptors::context: entering 'deserialization' phase
2023-09-26T20:27:12.201529Z DEBUG hyper::client::pool: pooling idle connection for ("https", kms.us-east-1.amazonaws.com)
2023-09-26T20:27:12.201630Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt:deserialization:deserialize_nonstreaming: aws_sdk_kms::operation::encrypt: request_id=Some("ca792b08-7317-4f01-a054-947d96520813")
2023-09-26T20:27:12.201729Z DEBUG invoke{service=kms operation=Encrypt}:try_op:try_attempt: aws_smithy_runtime_api::client::interceptors::context: entering 'after deserialization' phase
2023-09-26T20:27:12.201802Z DEBUG invoke{service=kms operation=Encrypt}:try_op: aws_smithy_runtime::client::retries::strategy::standard: request succeeded, no retry necessary
2023-09-26T20:27:12.201830Z DEBUG invoke{service=kms operation=Encrypt}:try_op: aws_smithy_runtime::client::orchestrator: a retry is either unnecessary or not possible, exiting attempt loop
2023-09-26T20:27:12.235150Z DEBUG invoke{service=kms operation=Decrypt}:try_op: aws_smithy_runtime_api::client::interceptors::context: entering 'serialization' phase
2023-09-26T20:27:12.235254Z DEBUG invoke{service=kms operation=Decrypt}:try_op: aws_smithy_runtime_api::client::interceptors::context: entering 'before transmit' phase
2023-09-26T20:27:12.235313Z DEBUG invoke{service=kms operation=Decrypt}:try_op: aws_smithy_runtime::client::retries::strategy::standard: no client rate limiter configured, so no token is required for the initial request.
2023-09-26T20:27:12.235337Z DEBUG invoke{service=kms operation=Decrypt}:try_op: aws_smithy_runtime::client::orchestrator: retry strategy has OKed initial request
2023-09-26T20:27:12.235366Z DEBUG invoke{service=kms operation=Decrypt}:try_op: aws_smithy_runtime::client::orchestrator: beginning attempt #1
2023-09-26T20:27:12.235415Z DEBUG invoke{service=kms operation=Decrypt}:try_op:try_attempt: aws_smithy_runtime::client::orchestrator::endpoints: will use endpoint Endpoint { url: "https://kms.us-east-1.amazonaws.com", headers: {}, properties: {} }
2023-09-26T20:27:12.235512Z DEBUG invoke{service=kms operation=Decrypt}:try_op:try_attempt: aws_smithy_runtime::client::orchestrator: encountered orchestrator error; halting
2023-09-26T20:27:12.235584Z DEBUG invoke{service=kms operation=Decrypt}:try_op: aws_smithy_runtime::client::retries::strategy::standard: not retrying because we are out of attempts attempts=1 max_attempts=1
2023-09-26T20:27:12.235614Z DEBUG invoke{service=kms operation=Decrypt}:try_op: aws_smithy_runtime::client::orchestrator: a retry is either unnecessary or not possible, exiting attempt loop
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: DispatchFailure(DispatchFailure { source: ConnectorError { kind: Other(None), source: NoMatchingAuthScheme, connection: Unknown } })', src/main.rs:62:7
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2023-09-26T20:27:12.236095Z DEBUG rustls::common_state: Sending warning alert CloseNotify 
@anmlsngh anmlsngh added bug This issue is a bug. needs-triage This issue or PR still needs to be triaged. labels Sep 26, 2023
@Velfi
Copy link
Contributor

Velfi commented Sep 27, 2023

Hey @anmlsngh, thanks for submitting this issue. Here's what I think is going on:

Because of how you're constructing your config, it's not including an auth scheme. What is an auth scheme? It's a new orchestrator-related concept:

An authentication scheme consists of an ID (e.g. “aws.auth#sigv4”), logic to determine the IdentityResolver, and a Signer matching the authentication type.

In your case, since you're trying to use KMS, it requires the Sigv4 auth scheme. I'm guessing that when you perform the config override, that that's where the bug is. My guess is that config_override isn't respecting the auth schemes that are set by default when making requests with an AWS service client.

I'll put this issue on our backlog, although this is a busy week for us and it might take a week or two for us to take a look at this. If you absolutely can't wait that long, the workaround I recommend is to create a client + config the usual way instead of using the config override mechanism.

@Velfi Velfi removed the needs-triage This issue or PR still needs to be triaged. label Sep 27, 2023
@anmlsngh
Copy link
Author

anmlsngh commented Sep 27, 2023

My goal is to create a client that gets passed in different credentials to be used for each request (ex. the client is not tied to any particular credentials, but instead uses different credentials on each request that is passed in).

If I understand correctly, creating a client + config the usual way would mean I would have to make a new client on each request because each client's creation is tied a specific set of credentials in a config.

Is there a work-around for where I can pass in credentials and the client uses those credentials (without using config_override())?

@jdisanti
Copy link
Contributor

I think the only workaround right now would be to construct a new client every time, and do it in such a way that all the new clients reuse the same HTTP connector so that you're not paying the price for TLS connect every time. This can be done by settings the http_connector on the Config. The rest of client construction should be cheap.

@github-actions
Copy link

github-actions bot commented Oct 5, 2023

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@ysaito1001 ysaito1001 reopened this Oct 5, 2023
@ysaito1001
Copy link
Collaborator

Still pending to release the fix

@github-actions
Copy link

github-actions bot commented Oct 6, 2023

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@jdisanti
Copy link
Contributor

jdisanti commented Oct 6, 2023

Bad bot.

@jdisanti jdisanti reopened this Oct 6, 2023
@rcoh
Copy link
Contributor

rcoh commented Oct 9, 2023

@jdisanti this was actually a shockingly good bot—it saw the sync'd commit and closed the issue! Honestly, this may be the best way to close issues on the Rust SDK if we can get it to work reliably...

@rcoh rcoh closed this as completed Oct 9, 2023
@github-actions
Copy link

github-actions bot commented Oct 9, 2023

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@rcoh
Copy link
Contributor

rcoh commented Nov 7, 2023

This issue still seems to be a problem.

@rcoh rcoh reopened this Nov 7, 2023
@rcoh
Copy link
Contributor

rcoh commented Nov 7, 2023

@Velfi Velfi removed the pending-release This issue will be fixed by an approved PR that hasn't been released yet. label Nov 7, 2023
github-merge-queue bot pushed a commit to smithy-lang/smithy-rs that referenced this issue Nov 10, 2023
…only at operation level (#3156)

## Motivation and Context
Fixes awslabs/aws-sdk-rust#901

## Description
This PR is a rework of #3021
whose fix was inadvertently discarded during
#3077. The way we fix the issue
is slightly different. In this PR, we add an identity resolver to
runtime components within `set_credentials_provider`, instead of using
`ServiceConfig.OperationConfigOverride`.

## Testing
Added a Kotlin integration test to `CredentialProviderConfigTest.kt`
based on the customer reported issue.

## Checklist
<!--- If a checkbox below is not applicable, then please DELETE it
rather than leaving it unchecked -->
- [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS
SDK, generated SDK code, or SDK runtime crates

----

_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._
Copy link

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

rcoh pushed a commit to smithy-lang/smithy-rs that referenced this issue Nov 13, 2023
…only at operation level (#3156)

Fixes awslabs/aws-sdk-rust#901

This PR is a rework of #3021
whose fix was inadvertently discarded during
#3077. The way we fix the issue
is slightly different. In this PR, we add an identity resolver to
runtime components within `set_credentials_provider`, instead of using
`ServiceConfig.OperationConfigOverride`.

Added a Kotlin integration test to `CredentialProviderConfigTest.kt`
based on the customer reported issue.

<!--- If a checkbox below is not applicable, then please DELETE it
rather than leaving it unchecked -->
- [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS
SDK, generated SDK code, or SDK runtime crates

----

_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._
rcoh pushed a commit to smithy-lang/smithy-rs that referenced this issue Nov 13, 2023
…only at operation level (#3156)

Fixes awslabs/aws-sdk-rust#901

This PR is a rework of #3021
whose fix was inadvertently discarded during
#3077. The way we fix the issue
is slightly different. In this PR, we add an identity resolver to
runtime components within `set_credentials_provider`, instead of using
`ServiceConfig.OperationConfigOverride`.

Added a Kotlin integration test to `CredentialProviderConfigTest.kt`
based on the customer reported issue.

<!--- If a checkbox below is not applicable, then please DELETE it
rather than leaving it unchecked -->
- [x] I have updated `CHANGELOG.next.toml` if I made changes to the AWS
SDK, generated SDK code, or SDK runtime crates

----

_By submitting this pull request, I confirm that you can use, modify,
copy, and redistribute this contribution, under the terms of your
choice._
@bikashmishra100
Copy link

bikashmishra100 commented Jan 1, 2024

@ysaito1001 @rcoh Is the fix released ? I was not able to run https://github.com/rcoh/aws-sdk-rust-57-release/blob/main/src/bin/config_override_901.rs in any known versions available.

I was expecting the override option to work in the below case for credentials.

Config A overridden by Config B = Config C
field_2: Some(v1), field_2: Some(v2), field_2: Some(v2),

I used the aws_config::defaults().

It seems no_credentials had to be called on the first config object.

@rcoh
Copy link
Contributor

rcoh commented Jan 4, 2024

is it possible to send a small reproducer?

@bikashmishra100
Copy link

I took the same example of yours and modified a little bit. Here is how it looks.

// https://github.com/awslabs/aws-sdk-rust/issues/901
use aws_sdk_kms::config::{Credentials, Region};
use aws_sdk_kms::Client;
use aws_sdk_kms::primitives::Blob;

fn valid_creds() -> Credentials {
    Credentials::new(
        "valid",
        "valid",
        Some("valid".to_string()),
        None,
        "valid",
    )
}

fn invalid_creds() -> Credentials {
    Credentials::new(
        "invalid",
        "invalid",
        Some("invalid".to_string()),
        None,
        "invalid",
    )
}

#[tokio::main]
async fn main(){

    //Code to encrypt text (this works fine)
    tracing_subscriber::fmt::init();

    // Create a client with no credentials
    let conf = aws_sdk_kms::Config::builder().region(Region::new("us-east-1")).credentials_provider(invalid_creds());.build();
    let client = Client::from_conf(conf);

    // Create a configuration override to be used on decrypt call
    let override_config = aws_sdk_kms::Config::builder()
        .credentials_provider(valid_creds());

    // Decrypt call returns DispatchFailure when it should return the decrypted result
    let _result = client
        .decrypt()
        .ciphertext_blob(Blob::new("blob"))
        .customize()
        .config_override(override_config)
        .send()
        .await
        .unwrap();
    // This should fail with an error about invalid credentials, but instead the request is not sent!
}

I supply invalid credentials in the first config and then override it with valid config.

@rcoh
Copy link
Contributor

rcoh commented Jan 8, 2024

Got it. I've reproduced this issue. We'll get a fix out soon.

@rcoh
Copy link
Contributor

rcoh commented Jan 12, 2024

Great, fixed. We'll re-close this once the updated fix lands. Thanks for the reproducer!

@rcoh rcoh added the pending-release This issue will be fixed by an approved PR that hasn't been released yet. label Jan 12, 2024
@jmklix
Copy link
Member

jmklix commented Feb 13, 2024

This fix is now live in the latest version of this sdk. Please let us know if you have any other issues with using this sdk.

@jmklix jmklix closed this as completed Feb 13, 2024
Copy link

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug This issue is a bug. pending-release This issue will be fixed by an approved PR that hasn't been released yet.
Projects
None yet
7 participants