Fix org-contacts UUID format and add OrgID troubleshooting guidance#4
Closed
mycollablab wants to merge 4 commits into
Closed
Fix org-contacts UUID format and add OrgID troubleshooting guidance#4mycollablab wants to merge 4 commits into
mycollablab wants to merge 4 commits into
Conversation
The /contacts/organizations/{orgId}/* API requires UUID format, not the
base64 format used by most other Admin endpoints. The codegen was sending
base64 because the blanket --org-id → base64 rule in root.go applied to
all non-CC commands indiscriminately.
Fix: extend the orgId normalization condition in generate_cli.py to also
apply UUID handling (--orgid flag, {orgid} path) for any endpoint whose
path contains /contacts/organizations/, matching the explicit Postman note
"orgId used in path are the org UUIDs." All 7 org-contacts commands now
use --orgid and auto-receive a decoded UUID from root.go.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Documents the CC=UUID vs admin/calling=base64 rule and tells the model to try the other format when an API returns a 400/404 org-related error. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
On a 429 response the client now reads the Retry-After header (seconds), sleeps that long, and retries up to 3 times. Falls back to 5 seconds if the header is absent or unparseable. Prints a message to stderr so the user knows why the command is pausing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds two new persistent flags to control retry behavior on HTTP 429 responses: - --max-retry (default 3): max number of retry attempts before giving up - --max-retry-timer (default 60s): max total seconds allowed across all retries If either limit would be exceeded before the next retry, the command exits immediately with a clear error message stating the throttle condition and how long to wait before retrying, rather than silently sleeping through it. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
org-contactscommands to use UUID format fororgId— the Admin/contacts/organizations/API requires UUID, not base64. Root cause was a blanket rule in codegen that mapped all non-CC commands to base64. Added a path-based exception for this endpoint.skill/SKILL.mdexplaining the base64 vs UUID distinction and advising users to try the other format if a 400/404 is returned on an org-scoped endpoint.Retry-Afterheader, defaults to 5s, retries up to--max-retrytimes (default 3) with a--max-retry-timerceiling (default 60s). If either limit would be exceeded before the next retry, the command exits immediately with a clear throttling error stating the wait time.New global flags
--max-retry--max-retry-timerTest plan
webex cc site listand confirm orgid auto-populates from loginwebex admin org-contacts listand confirm it uses UUID format--max-retry=0and confirm a 429 response exits immediately with an error message--max-retry-timerprevents a retry that would exceed the budget🤖 Generated with Claude Code