Skip to content

fix: hasAccess() silently loses error context when no token is available - #564

Open
si-kui-a wants to merge 1 commit into
googleworkspace:mainfrom
si-kui-a:fix/hasaccess-lasterror-not-set
Open

si-kui-a wants to merge 1 commit into
googleworkspace:mainfrom
si-kui-a:fix/hasaccess-lasterror-not-set

Conversation

@si-kui-a

Copy link
Copy Markdown

Fixes #543.

When there's no cached token and no way to get one (no refresh token, no private key, no grant type), hasAccess() returned false without touching lastError_, so getLastError() returned either undefined or a stale error from a previous unrelated failure.

Set lastError_ to a message describing the actual situation before returning false.

Regenerated dist/OAuth2.gs via npm run dist (gulp) to keep it in sync with the src/ change, following the same pattern as #513.

Test plan

  • Existing mocha suite: 59 passing before, 60 after.
  • Added a test for this exact branch, asserting getLastError() now returns a message matching the new explanation.

Co-authored with Claude Code (Anthropic); reviewed by @si-kui-a before submission.

When there's no cached token and no way to get one (no refresh
token, no private key, no grant type configured), hasAccess()
returned false without touching lastError_, so getLastError()
returned either undefined or a stale error from a previous, unrelated
failure -- misleading whoever calls getLastError() to explain the
false return to a user (see googleworkspace#543).

Set lastError_ to a message describing the actual situation (redirect
to getAuthorizationUrl(), or configure setPrivateKey()/setGrantType())
before returning false.

Regenerated dist/OAuth2.gs via `npm run dist` (gulp) to keep it in
sync with the src/ change, following the same pattern as googleworkspace#513.

Verified against the existing mocha suite (59 passing before, 60
after) plus a new test covering this exact branch, asserting
getLastError() now returns a message matching the new explanation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

Reviewed-by: si-kui-a
@google-cla

google-cla Bot commented Sep 12, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Service_.prototype.hasAccess doesn't set this.lastError_ if canGetToken is false

1 participant