aws / aws/amazon-q-developer-cli

bug: AWS CLI Parameter Validation Error for All Describe Commands

Open
#3,092 0 comments 0 reactions 0 assignees View on GitHub
bug q chat
Dominant language
Rust
Stars
2k
Forks
439
PR merge metrics
No merged PRs in 30d

Description

### Checks

- [x] I have searched [github.com/aws/amazon-q-developer-cli/issues](https://github.com/aws/amazon-q-developer-cli/issues?q=) and there are no duplicates of my issue
- [x] I have run `q doctor` in the affected terminal session
- [x] I have run `q restart` and replicated the issue again

### Operating system

macos 26.0

### Expected behaviour

# Bug Report: AWS CLI Parameter Validation Error for All Describe Commands

## Description
The Q Developer CLI generates AWS CLI `describe-*` commands with incorrect parameter casing in filter specifications. All describe commands fail with parameter validation errors because lowercase parameter names (`name`, `values`) are used instead of the required Pascal-case format (`Name`, `Values`).

Image

## Example Command Executed
```bash
aws ec2 describe-subnets \
--filters '[{"name":"tag:Name","values":["*app-a*"]}]' \
--profile test \
--region us-east-1
```

## Error Output
```
Execution failed after 0.341s:

Parameter validation failed:
Unknown parameter in Filters[0]: "name", must be one of: Name, Values
Unknown parameter in Filters[0]: "values", must be one of: Name, Values
```

## Expected Behavior
Q Developer CLI should generate AWS CLI commands with correctly cased filter parameters:
```bash
aws ec2 describe-subnets \
--filters '[{"Name":"tag:Name","Values":["*app-a*"]}]' \
--profile test \
--region us-east-1
```

### Actual behaviour

## Actual Behavior
All describe commands are generated with lowercase `name` and `values` keys, causing systematic parameter validation failures across all AWS services.

## Impact
- **Severity**: Low (annoying but easily worked around)
- **Scope**: All AWS describe commands that use filters (EC2, RDS, ECS, Lambda, etc.)
- **User Impact**: Users must manually correct casing before commands will execute successfully

## Root Cause
The Q Developer CLI appears to have a systematic issue where it generates filter parameters using lowercase JSON keys instead of the Pascal-case format required by AWS CLI.

## Proposed Solution
1. Update the Q Developer CLI filter parameter generation logic to use Pascal-case keys (`Name`, `Values`)
2. Add validation to ensure generated AWS CLI commands conform to AWS CLI parameter specifications
3. Implement automated testing for describe commands across multiple AWS services

## Affected Services (Non-exhaustive)
- EC2: `describe-instances`, `describe-subnets`, `describe-vpcs`, `describe-security-groups`
- RDS: `describe-db-instances`, `describe-db-clusters`
- ECS: `describe-clusters`, `describe-services`, `describe-tasks`
- Lambda: `list-functions` (with filters)
- And any other service using the `--filters` parameter

## Workaround
Manually correct the casing in generated commands before execution:
- Change `"name"` → `"Name"`
- Change `"values"` → `"Values"`

### Steps to reproduce

## Reproduction Steps
1. Use Q Developer CLI to execute any AWS describe command with filters
2. Observe that generated commands use lowercase JSON keys in filter parameters
3. Command fails with parameter validation error

### Environment

```yaml
## Environment
- **Tool**: Q Developer CLI / use_aws tool
- **Service**: AWS CLI (all services)
- **Affected Operations**: All `describe-*` commands that use filters
- **Profile**: test
- **Region**: us-east-1
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.