Understanding return codes from the AWS CLI - AWS Command Line Interface

Understanding return codes from the AWS CLI

The return code is usually a hidden code sent after running a AWS Command Line Interface (AWS CLI) command which describes the status of the command. You can use the echo command to display the code sent from the last AWS CLI command and use these codes to determine if a command was successful or if it failed, and why a command might have an error. In addition to the return codes, you can view more details about a failure by running your commands with the --debug switch. This switch produces a detailed report of the steps the AWS CLI uses to process the command, and what the result of each step was.

To determine the return code of an AWS CLI command, run one of the following commands immediately after running the CLI command.

Linux and macOS
$ echo $? 0
Windows PowerShell
PS> echo $lastexitcode 0
Windows Command Prompt
C:\> echo %errorlevel% 0

The following are the return code values that can be returned at the end of running an AWS Command Line Interface (AWS CLI) command.

Code Meaning

The service responded with an HTTP response status code of 200 indicating that there were no errors generated by the AWS CLI and AWS service the request was sent to.


One or more Amazon S3 transfer operations failed. Limited to S3 commands.


The meaning of this return code depends on the command:

  • Applicable to all AWS CLI commands – the command entered couldn't be parsed. Parsing failures can be caused by, but aren't limited to, missing required subcommands or arguments, or using unknown commands or arguments.

  • Limited to S3 commands – One or more files marked for transfer were skipped during the transfer process. However, all other files marked for transfer were successfully transferred. Files that are skipped during the transfer process include: files that don't exist; files that are character special devices, block special device, FIFO queues, or sockets; and files that the user doesn't have read permissions to.


The command was interrupted by a SIGINT. This is the signal sent by you to cancel a command with Ctrl+C.


Command syntax was invalid, an unknown parameter was provided, or a parameter value was incorrect and prevented the command from running.


The system environment or configuration was invalid. While the command provided might be syntactically valid, missing configuration or credentials prevented the command from running.


The command successfully parsed and a request made to the specified service but the service returned an error. This will generally indicate incorrect API usage or other service specific issues.


The command failed. There were errors generated by the AWS CLI or by the AWS service to which the request was sent.