You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG] API Gateway GetUsagePlans ignores the keyId filter #7653
GetUsagePlans with its keyId query parameter (aws apigateway get-usage-plans --key-id <id>)
Expected behavior
API Gateway answers GET /usageplans?keyId=<id> with only the usage plans the key is added to. Measured on AWS (eu-west-1, AWS CLI 2.39.3) with two plans and a key added to the first:
Request
AWS answer
keyId=<key in the first plan>
the first plan only
keyId=<key in both plans>
both plans
keyId=<key in no plan>
200 {"item":[]}
keyId=<id of no key>
200 {"item":[]}, not a NotFoundException
keyId= or keyId=%20
every plan, as without the parameter
keyId=<the key id upper-cased>
200 {"item":[]}, the match is exact
Actual behavior
ApiGatewayController.getUsagePlans takes no keyId query parameter and answers every plan of the region, whatever the key. A key in no plan is reported as being in all of them.
A client that reads a key's plans before binding it then believes the key is already bound and skips CreateUsagePlanKey, so the key stays in no plan and every call with it on a method that requires a key answers 403. A client that moves a key between plans removes it from a plan it is not in and gets 404 NotFoundExceptionUsage Plan Key not found from DeleteUsagePlanKey.
The docs state the gap: "Floci does not ... filter GetUsagePlans by keyId" (docs/services/api-gateway.md, "Usage plan stages, throttle and quota").
Current main (cf96dadfd9) still ignores keyId; existing fix #7655 remains at d23e612ba4. Earlier validation today passed both SDK tests with production unchanged, and 20 AWS controls across two regions confirmed membership, removal and empty/whitespace behavior. All temporary resources were deleted and verified absent. No duplicate fix is needed; keep this issue open until #7655 lands. Pagination remains separate.
Activity
AndreKurait commentedon Nov 6, 2026
Current main (
cf96dadfd9) still ignoreskeyId; existing fix #7655 remains atd23e612ba4. Earlier validation today passed both SDK tests with production unchanged, and 20 AWS controls across two regions confirmed membership, removal and empty/whitespace behavior. All temporary resources were deleted and verified absent. No duplicate fix is needed; keep this issue open until #7655 lands. Pagination remains separate.