anthropics / anthropics/claude-code
[BUG] Gmail connector: all tool calls fail with "Precondition check failed" even after full OAuth reauthorization
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Preflight Checklist
- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
### What's Wrong?
**Environment**
- Claude Code desktop app (Code tab)
- macOS 26.5.1 (Build 25F80)
- Connector: Gmail (via claude.ai Connectors), account on a custom Google Workspace domain
**Problem**
Every call to any Gmail connector tool fails with a generic error:
Precondition check failed
This happens for both read-only tools (list_labels, search_threads) and
write tools (send_message, create_draft), immediately, with no other
detail in the error. The connector itself is reported as "connected"
(status: connected, tool_count: 29) via session connector status the
whole time.
**Steps to reproduce**
1. Connect Gmail in Settings → Connectors, using an info@ account on a
custom Google Workspace domain
2. Call any Gmail tool (e.g. list labels) → fails with "Precondition
check failed"
**Troubleshooting already tried (none fixed it)**
1. Disconnected and reconnected the Gmail connector from Claude's
Settings → Connectors. Reconnecting did NOT show Google's consent
screen (silently reused a cached grant). Error persisted.
2. Started a brand-new chat session to rule out session-level caching.
Same error occurred immediately on the first call.
3. Checked the Google Workspace Admin Console → Security → API Controls
→ App access control, and found/removed a restriction on the app.
Retried → same error, unchanged.
4. Went to myaccount.google.com/permissions, fully revoked "Claude for
Gmail" access, then reconnected from Claude Settings. This time
Google's real OAuth consent screen appeared, requesting:
- Read email messages and settings
- Manage drafts and send email
- Read, compose, and send emails from the Gmail account
Granted all three scopes explicitly. Retried the same tool calls →
still "Precondition check failed", completely unchanged.
**Expected behavior**
Gmail tool calls should succeed after a valid, freshly-granted OAuth
authorization with all requested scopes.
**Actual behavior**
100% of Gmail connector calls fail identically before and after full
reauthorization, suggesting the issue is not account/permission-related
but a bug or outage in the connector itself.
### What Should Happen?
Gmail connector tool calls should succeed after a valid, freshly-granted OAuth authorization with all requested scopes. Read-only calls (e.g. list_labels) should return the label list, and write calls (e.g. send_message, create_draft) should send/create the email as requested.
### Error Messages/Logs
```shell
```
### Steps to Reproduce
1. In Claude desktop app, go to Settings → Connectors and connect Gmail using an info@ account on a custom Google Workspace domain
2. In a chat, ask Claude to do anything with Gmail (e.g. "list my Gmail labels" or "send a test email")
3. The tool call fails immediately with: "Precondition check failed" — no further detail
4. This happens for every Gmail tool call, both read-only (list_labels, search_threads) and write (send_message, create_draft), 100% of the time
5. Fully disconnect and reconnect the connector in Settings → Connectors → Gmail. Reconnecting sometimes silently reuses a cached Google consent (no permission screen shown). Error persists identically.
6. Revoke access entirely at myaccount.google.com/permissions ("Claude for Gmail"), then reconnect from Claude Settings. This time Google's full OAuth consent screen appears; grant all requested scopes (read, manage drafts/send, read/compose/send).
7. Retry the same Gmail tool calls — still fails identically with "Precondition check failed"
### Claude Model
Sonnet (default)
### Is this a regression?
No, this never worked
### Last Working Version
_No response_
### Claude Code Version
Claude 2.110.0 (dfb2ba) 2026-09-15T05:50:55.000Z
### Platform
Other
### Operating System
macOS
### Terminal/Shell
Other
### Additional Information
Reproduced via the desktop app's Connectors settings, not via CLI/terminal.
Related: this appears to be the same family of issue as #87808 (closed as "invalid/not related to Claude Code" without investigation — same symptom: ALL Gmail calls fail despite fully confirmed OAuth grant, just a different error string), and the same underlying Google connector OAuth/token pattern discussed in #72375. Given the recurring pattern across multiple users and connectors (Gmail, Calendar), this looks like a server-side token-refresh bug in Claude's connector infrastructure rather than a user-side auth misconfiguration — please don't auto-close as unrelated.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the failure with the Gmail connector and compare the behavior before and after OAuth access is revoked and freshly granted. Review related issues #87808 and #72375 for the reported OAuth and connector patterns. Done means Gmail read-only and write tool calls succeed without the precondition error, with the underlying cause documented and covered by an appropriate regression check.
Written by the indexing model from the issue text.
Assessment
- Domain
- authentication
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100