| Code | HTTP status | Message | Likely cause | Resolution |
|---|---|---|---|---|
1002 |
400 | Invalid set payload | Request body is malformed or missing required fields | Verify the body is valid JSON with resource_type, resource_id, and tags |
1003 |
400 | resource_type and resource_id are required |
Missing query parameters | Include both resource_type and resource_id in the query string |
1006 |
400 | Invalid resource type | Unsupported resource type | Use a supported resource type |
1007 |
400 | tag parameter must be in format... | Tag filter syntax is incorrect | Refer to tag filtering syntax |
1009 |
400 | tag_key is required |
Missing tag_key parameter |
Include the tag_key path parameter |
1010 |
400 | too many tag filters (maximum 20) | More than 20 tag query parameters |
Reduce filters to 20 or fewer, or split across multiple requests |
1011 |
400 | tag key too long (maximum 256 characters) | Tag key exceeds 256 characters | Shorten the tag key |
1012 |
400 | tag value too long (maximum 1024 characters) | Tag value exceeds 1,024 characters | Shorten the tag value |
1013 |
400 | too many OR values in tag filter (maximum 10) | More than 10 comma-separated values in a single filter | Split into multiple filters |
1014 |
400 | Invalid tag key | Key contains invalid characters | Use only letters, digits, _, ., - |
1015 |
400 | Invalid delete payload | Delete request body is malformed | Verify the body includes resource_type and resource_id |
In the current beta, GET /accounts/{account_id}/tags returns 500 Internal Server Error for resources that do not exist or have never been tagged:
"resource not found: type={resource_type} id={resource_id}"List endpoints (/tags/resources, /tags/keys, /tags/values/{key}) return 200 OK with an empty result array when no matches are found -- this is expected, not an error.
This 500 behavior is a known beta limitation and may change to 404 in a future release.