Otto says Gmail isn't connected, but Connections shows it as Linked

Modified on Tue, 4 Aug at 12:33 PM

Otto cannot connect to Gmail, and yet the Connections tab shows Gmail as Linked. In chat you get "Gmail's MCP connection isn't available in this session", or "Otto reports an authorization error: invalid_grant", or "Otto is unable to save emails to my Drafts folder - it repeatedly returns a blocked message". Tap Check it's live on the card and it answers Gmail - Linked - couldn't confirm - Otto checks when it uses it, which is the same thing a support bundle records as gmail: unconfirmed. People write in with exactly this: "I have approved it repeatedly, but it is not working", and "No instructions to get it back on".

Start here if any of these is yours: "It is connected in Claude.ai". "This was working yesterday. Today, BookedSolid cannot make a connection". "I have disconnected and reconnected my gmail account twice" and "Still no Gmail tools reachable". "When I click approve, it opens up the claude.ai connectors page", or "the gmail tab takes me back to Claude connections". Every one of those is the same problem, and they all end at the same fix.

There are two different Gmail connections in this app

This is the fact everything else hangs on, and almost nobody knows it. The app can reach Gmail two completely separate ways, and only one of them can hand Otto a draft tool.

  • Gmail (linked account) is the old connector. It rides your personal claude.ai account and is set up at claude.ai/customize/connectors. This is the one whose card jumps you over to Claude.
  • Gmail (app password) is the direct connection. Your address plus a Google App Password, added under Connections > Mail & calendars. It never touches claude.ai.

The Gmail that jumps you over to Claude is the old connector. It will never hand Otto a draft tool, no matter how many times it shows connected over there. So from here on, leave that one completely alone. Do not tap it again.

Why the claude.ai connector keeps failing

Three separate mechanisms, all real. Between them they explain every version of this you have seen.

  • It only surfaces reliably while you are in a live chat. In a background run - Autopilot, the morning sweep, any job running while you are not actively typing to Otto - it quietly drops out. That is why it fails on the first try and then works on a retry, why drafts come back blocked, and why reconnecting fixes it for a few days and then lapses again.
  • Its Google token expires. That is what produces invalid_grant. That error never comes from Booked Solid's own Gmail code. It is Google refusing a stale token on the claude.ai route.
  • The Linked badge is a history record, not a live check. Once Gmail has ever been linked, the card reads Linked forever, even while Otto genuinely cannot see it. Link history is not proof that anything works right now.

The one honest answer the badge cannot give sits on the same card. Tap Check it's live and the app actually asks. working now means it is reachable this minute. needs sign-in again means the token is stale. couldn't confirm - Otto checks when it uses it means the check could not get a straight answer, which on this path is common and is not a green light. What each badge promises is set out in Connected, Key saved, or Linked: what each Connections badge really means.

There is a fourth cause worth ruling out if it applies to you. While an Anthropic API key is active in the app, claude.ai account connectors never load at all. That is by design on Claude's side, and no amount of relinking brings Gmail through until the key is removed. The card says so in those words: off while an API key is in use - remove the key to use Gmail. The direct app-password connection is not affected by the key in any way. See Which AI runs Booked Solid? Your own Claude account (API keys are the exception).

The card Otto keeps showing: tap Not now

When Otto wants a connection he raises a card in the chat with an Approve Gmail button and a Not now button. Almost everyone taps Approve Gmail first, and it is a dead end: it opens the claude.ai connectors page, you approve there, you come back, and nothing has changed. Skip that button. Tap Not now. Once you are on the app-password path there is no claude.ai approval to give, and that card has nothing it can do for you.

If the card keeps reappearing, tell Otto in plain words: use the Gmail app-password connection directly.

What does not fix it

These have all been tried, repeatedly, across a lot of tickets. None of them works, and one of them makes things worse. Read the list before you spend an afternoon on it.

  • Tapping Approve Gmail again, any number of times.
  • Typing "I allow Gmail" or "I allow calendar access" in the chat. A plain-words grant only works for connections the app can switch on by itself, such as Web browsing. It cannot switch on an account connector that lives on claude.ai. If Otto told you a prompt would appear when you typed that, he overstated it. We have had that report more than once, in these words: "It said if I typed I allow calendar access a prompt would appear but no such luck". That is an Otto mistake, not an instruction to follow.
  • Disconnecting and reconnecting Gmail inside the app.
  • Removing and re-adding Gmail at claude.ai/customize/connectors.
  • Restarting the app. On the claude.ai path a restart changes nothing at all.
  • Revoking Claude's access under myaccount.google.com > Security > Third-party apps with account access and adding it back. Do not do this. Support suggested it once and apologised for it, because it cleared the one side that was still working.
  • Updating the app. One person went through 1.7.17, 1.7.19 and 1.8.1 on this path and it still failed. Updating matters for the app-password path, covered below. It does not rescue the linked account.

Two things that look like extra bugs and are not

People often report these alongside the main problem, as if three things broke at once. Only one thing is broken.

  • Going to Connections and selecting Manage opens Claude instead. That is deliberate. The linked-account Gmail lives on your Claude account, so Manage sends you to claude.ai/customize/connectors on purpose. There is nothing in the app to change for it.
  • In Settings > Permissions I'm unable to toggle the permissions on or off or change them to Read & Write. Also expected. Settings > Permissions only lists connections the app itself runs. The linked-account Gmail has no in-app reach control whatsoever, because its permissions live on claude.ai. Move to the direct connection and a Gmail (app password) row appears there, with the on/off switch and the Read & write dropdown you were looking for.

The fix: connect that inbox directly with an app password

The supported path for Gmail is a direct connection: your inbox added as an Any email (IMAP) account with a Google App Password. It takes about five minutes, it works in background runs, and it involves claude.ai nowhere.

  1. Open the Connections tab and scroll to the Mail & calendars section.
  2. Click Add an email account. The method already defaults to Any email (IMAP) - keep it there.
  3. In your browser, go to myaccount.google.com/apppasswords (your Google account needs 2-Step Verification on) and create an app password. Google shows a 16-letter code.
  4. Back in the app, enter your Gmail address and paste the code into the password field - spaces are stripped automatically.
  5. Click Check it, wait for it to pass, then Save.

Saving a new Gmail inbox switches on the Gmail (app password) tool for Otto automatically, and there is no restart step - the account reaches Otto the moment you save it. The full walkthrough, including custom-domain Google accounts, is in Connect your Gmail with an app password (step by step). Every Check it error is decoded in Add any inbox by IMAP: app passwords and every "Check it" error explained.

Otto keeps offering an Approve Gmail card even though I set up the app password

A different problem with the same face. Work through these in order.

  1. Update to 1.11.13 or newer. From that version the precedence is settled: with a saved app-password inbox, the direct Gmail tools are the Gmail path, and the claude.ai connector is only the fallback for people with no saved inbox. A hiccup on a saved inbox can no longer bounce you back to the Approve card at all. That loop is gone by design.
  2. Check the Gmail (app password) switch under Tool access. On older setups a green Check it was not enough on its own: the inbox was saved and working while the tool switch stayed off, so Otto could not read or draft in it. New saves flip it on automatically. If yours is off, the account row itself says so and offers a one-tap way to switch it on.
  3. Re-enter the app password if it stopped unlocking. After some app updates the saved password can no longer be unlocked on that machine. The password itself is still right. Open the saved account under Mail & calendars, enter the Google app password again, and Save. The next conversation picks it up. Nothing on claude.ai can fix this one.
  4. Start a fresh chat. If the conversation was already open when you connected the inbox, that session was built before the tools existed. A new chat, or quitting and reopening the app, picks them up.
  5. Older than 1.11.5? There was a packaging bug: the Gmail tool programs were missing from every installed build, so Otto kept reporting "reconnect Gmail" or "invalid grant" even when the password test showed green. Update to 1.11.5 or newer, then use Start fresh so a clean session picks up the fixed tools.

What you are not losing while this is broken

Autopilot does not need Gmail to run. When the Gmail link is down it skips the mail-reading step and gets on with the rest of the run. Nothing is lost. Unread mail sits safely in Gmail exactly where you left it, waiting for you.

Once the direct connection is in, what about the claude.ai one?

Your choice. Leave the claude.ai Gmail link exactly as it is, or delete the claude.ai connectors entirely - deleting them is fine and simply clears the noise. If something still prompts that a claude.ai Gmail connection needs authorizing, ignore it. It is not holding anything up.

How to confirm it works again

The real test is the task that failed: ask Otto to draft that email again. If the draft goes through, you are set. Otto also names which inbox he is acting in, so you can see the right account doing the work.

Good to know

  • Moving off the claude.ai connector clears three separate classes of problem at once: the background drop-outs, messages that never showed up, and it is the prerequisite for Otto noticing when you have already replied from Gmail yourself.
  • Unlike the old linked-account method, an app-password inbox can be watched in the background - it is a full inbox connection, not an on-demand link.
  • You can add several inboxes at once, one per persona, each with its own purpose tag and app password.
  • Account cards have an Edit button, so a stale password never means removing and re-adding the account - edit it and paste a fresh code (leaving the password blank keeps the saved one).
  • Google Calendar: do not use a linked account for calendars either. For automatic conflict checks, add the calendar's private ICS link under Connections > Mail & calendars.

Prefer a fully managed experience? Booked Solid OS runs on your computer and you stay hands-on. If you would rather have this handled for you on a hosted platform (lead finding, follow-ups, email sending, invoicing, all managed in one place), take a look at KM Hub from the same team.

If it still does not work

If you have the direct connection saved, the Gmail (app password) switch on, and Otto still cannot draft, that is a real fault and we want it. Email bookedsolid@kivimedia.freshdesk.com with your app version and the exact words Otto used, and a person will help.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article