Environment
- gws 0.22.5 (Homebrew
googleworkspace-cli)
- macOS 15 (arm64)
Steps to reproduce
- Run the interactive wizard:
gws auth setup --project <project-id>
- At Step 5/5 ("OAuth credentials — Waiting for manual input..."), paste a Client ID that ends with a trailing space (very easy to pick up when copying from the Cloud Console credentials page or a chat/notes app)
- Complete the wizard and let it start
gws auth login
What happens
The wizard stores the Client ID verbatim (trailing space included) in ~/.config/gws/client_secret.json:
"client_id": "1234567890-abcdefghij.apps.googleusercontent.com "
The generated authorization URL then contains an encoded trailing space right before the next query parameter:
...&client_id=1234567890-abcdefghij.apps.googleusercontent.com%20&prompt=select_account+consent
Google rejects the request with "The OAuth client was not found." / Error 401: invalid_client, which is quite hard to trace back to an invisible character — the pasted value looks correct in the terminal, and gws auth setup reports success.
Follow-up runs of the wizard pre-fill the stored (dirty) value, so the error persists across re-runs and survives what otherwise looks like a clean re-setup.
Expected behavior
Trim leading/trailing whitespace from the pasted Client ID and Client Secret in the setup wizard input handling (stage_configure_oauth), and ideally also when loading values from client_secret.json / env vars, so a stray space can never produce a misleading invalid_client error.
Workaround
Manually edit ~/.config/gws/client_secret.json and remove the trailing space from client_id, then re-run gws auth login.
Environment
googleworkspace-cli)Steps to reproduce
gws auth setup --project <project-id>gws auth loginWhat happens
The wizard stores the Client ID verbatim (trailing space included) in
~/.config/gws/client_secret.json:The generated authorization URL then contains an encoded trailing space right before the next query parameter:
Google rejects the request with "The OAuth client was not found." / Error 401: invalid_client, which is quite hard to trace back to an invisible character — the pasted value looks correct in the terminal, and
gws auth setupreports success.Follow-up runs of the wizard pre-fill the stored (dirty) value, so the error persists across re-runs and survives what otherwise looks like a clean re-setup.
Expected behavior
Trim leading/trailing whitespace from the pasted Client ID and Client Secret in the setup wizard input handling (
stage_configure_oauth), and ideally also when loading values fromclient_secret.json/ env vars, so a stray space can never produce a misleadinginvalid_clienterror.Workaround
Manually edit
~/.config/gws/client_secret.jsonand remove the trailing space fromclient_id, then re-rungws auth login.