Setting/getting "expiration" with aws configure does not work consistently
Describe the bug
Setting the expiration configuration item with aws configure set writes the value to config, but aws configure get only reads it correctly from the shared credentials file. I think the get side might also work incorrectly with expiration, as it exits successfully and prints None instead of exiting with 1, like with other configuration values that are missing.
Expected Behavior
After setting expiration with aws configure set expiration some-value --profile some-profile, reading the value with aws configure get expiration --profile some-profile returns the same value.
Current Behavior
The value returned by configure get is None, instead of the set value. The value is written in the config file, but it is only read from the credentials file.
Reproduction Steps
aws configure set expiration "some-value" --profile "some-existing-profile"
aws configure get expiration --profile "some-existing-profile"
Possible Solution
The configure set command writes aws_access_key_id, aws_secret_access_key and aws_session_token to the credentials file (here). Expiration should probably be included in the list? This would not fix what I assume is incorrect output and exit code of configure get expiration when it doesn't exist, though.
Additional Information/Context
No response
CLI version used
aws-cli/2.15.3 Python/3.11.6 Darwin/21.6.0 source/arm64 prompt/off
Environment details (OS name and version, etc.)
macOS 12
It seems that at least the configure get part worked correctly previously in version aws-cli/2.4.17 Python/3.8.8 Darwin/23.2.0 exe/x86_64 prompt/off. In that version, aws configure get expiration --profile "profile-name" exits with non-zero instead of printing "None" and exiting successfully.
Thanks for reporting this issue and for your patience here.
I attempted to reproduce this on AWS CLI version 2.15.47, running the following:
aws configure set expiration "test" --profile "default"
Which updated my config file to add:
[default]
expiration = test
And then running:
aws configure get expiration --profile "default"
Does successfully return test.
So I'm not sure why this did not work on your end. Do you have any updates as far as what you tried, or other details that can help to reproduce this? If you could share your debug logs (with sensitive info redacted) by adding --debug to your commands then that might give us more insight.
Greetings! It looks like this issue hasn’t been active in longer than five days. We encourage you to check if this is still an issue in the latest release. In the absence of more information, we will be closing this issue soon. If you find that this is still a problem, please feel free to provide a comment or upvote with a reaction on the initial post to prevent automatic closure. If the issue is already closed, please feel free to open a new one.