You asked Otto for something and instead of an answer you got "Failed to authenticate. API Error: 401 Invalid authentication credentials", or "Failed to authenticate: OAuth session expired and could not be refreshed", or "Failed to authenticate. API Error: 401 OAuth access token has expired. Re-authenticate to continue." If you run Booked Solid from your own terminal rather than the app, the same thing arrives as "Login expired - please run /login" and it comes straight back no matter what you type. Those are all one problem with one fix. This article covers both doors, the app and the terminal, step by step.
First, the reassurance
Nothing is broken and nothing is lost. Your Booked Solid license is fine, your Otto plan is fine, and your leads, drafts, history and setup are all sitting exactly where you left them. This message is not coming from Booked Solid at all. It comes from Claude, the AI engine Otto runs on, saying that its own sign-in on this computer has timed out. That happens after enough time passes, and it is completely normal after a break of a few weeks. The fix takes about a minute.
What this message actually means
Otto thinks using your own Claude account, and that sign-in is kept on this computer, on its own. It is separate from your Gmail and Google connections, so reconnecting Google in the app does nothing for this. It is separate from your Booked Solid license, so there is no license key to re-enter. And asking Otto about it in chat cannot fix it either, because the chat itself needs that same sign-in in order to think. The only thing that clears it is signing Claude back in.
Is this Otto's sign-in, or a connector that needs reconnecting?
Worth ten seconds, because we once sent a customer down the wrong path here. A 401 can also come from a connected account whose own sign-in expired, and the reflex is to open Connections > Manage and sign in to Google again. Here is the tell that separates the two: ask Otto in chat how do I re-authenticate. If that question comes back with the same 401, it is Otto's own Claude sign-in, because that question touches no connector at all. In that case do not chase Gmail or Google. Carry on down this page.
Why force quitting and reopening does not help
Almost everyone tries this first, and on this particular error it is a dead end. Quitting Booked Solid and launching it again changes nothing, and you have not done it wrong. On versions before 1.7.26 the app checked a quick "looks signed in" marker at startup, and that marker was still sitting there even though the real Claude sign-in behind it had already expired. So the app kept insisting you were signed in while every task died on the expired session, and no amount of restarting could break that loop. That blind spot was ours, not yours.
Since version 1.7.26 the app recognises this exact error, including the OAuth wording, and hands you straight to a sign-in screen instead of printing the raw error at you. It does that whether the error turned up in Chat or in the middle of an Autopilot run, so on a current build you usually land on the sign-in screen without going looking for it, and the steps below are the manual route for the rare time it does not catch. Every build released since carries that fix. So if the app is not offering you a sign-in screen, you are on an older build: let the app update itself, or download fresh at booked.kivimedia.co/download. To check what you are on, open Settings and read the Updates card, which names the version you are running.
Sign back in from the desktop app
- Above the message box, click Power view (it sits next to Chat).
- In the top right of the terminal area, click the small Power-user view link. The app rechecks your sign-in.
- One of two things happens next:
- A screen titled "One quick sign-in" appears. Click Sign in now and finish signing in with your Claude account in the browser. If the browser shows a code at the end, copy it, paste it into Paste your sign-in code back in the app, and click Continue, then I'm signed in.
- A terminal session opens instead. Type
/loginin the typing box and press Enter, then finish the browser sign-in the same way, pasting the code back into the app if the browser shows one.
- Click back to Chat and ask Otto again. You are back in business.
Sign back in from the terminal edition
If you use Booked Solid from your own terminal, you have no Power view and no Chat box, so every step above is a dead end for you. Skip them. Your version of this reads "Login expired - please run /login", or wording very close to it such as "Not logged in · Please run /login", and it repeats endlessly whatever you type.
Here is the sentence people most need at this point: until you sign back in, that prompt is only listening for one specific command. Ordinary words and questions cannot get through to it. You are not trapped in a loop, you are typing things the prompt is not able to hear yet.
- At that prompt, type exactly
/login(a forward slash, then the word login, no space) and press Enter. - If it asks how you want to sign in, choose the Claude account or subscription option, the same way it was set up originally. Do not pick the API key option. That puts you on metered billing you do not need.
- It opens your browser, or prints a link for you to open, so you can sign in to Claude. Use the same Claude account as before.
- Approve it. If it hands you a code, paste that code back into the terminal. If it does not, it signs you straight in.
Once that finishes, the expired-login message clears and you are back where you left off. If typing /login does not bring up the sign-in at all, close the terminal window completely, reopen it, start Booked Solid the way you normally do, and run /login again.
The manual route that works on any version
If the in-app path will not co-operate, or you are on an older build that never offers you a sign-in screen, you can run the sign-in by hand. This is the exact command the app's own Sign in now button runs underneath, so nothing unusual or risky is happening here. These steps are written for Mac, which is where this comes up most.
- Quit Booked Solid completely with Cmd+Q. Closing the window is not enough.
- Open Terminal: press Cmd+Space, type Terminal, press Return.
- Type this line exactly and press Enter:
claude auth login - Your browser opens. Sign in with the same Claude account you used when you first set Otto up. If it gives you a code, paste it back into Terminal and press Enter.
- When it says you are signed in, close Terminal and open Booked Solid again.
If step 3 answers with command not found, it only means Claude lives somewhere slightly different on your Mac. Use this line instead: ~/.local/bin/claude auth login
On Windows, use the in-app route above. If that will not get you through, open a ticket and we will give you the exact line for your setup rather than have you guess at it.
Signing in at claude.ai alone is not enough
Signing in at claude.ai in your browser does not fix this on its own. The assistant on your computer keeps its own sign-in, so you still need to go through one of the routes above so that the machine in front of you gets signed back in.
You do not need your license key for this
Nothing on this page asks for a Booked Solid license code. This is purely the Claude sign-in refreshing. Keep the license email safe anyway: the code has the shape BS-XXXXX-XXXXX-XXXXX, it is shown on screen only once in the Green Room, and if you ever do need it, you open the Booked Solid OS desktop app, click First time here? Enter your license key on the sign-in screen, and paste it in.
The one thing that will genuinely block you: a lapsed Claude plan
Signing back in needs an active paid Claude plan. Claude Pro covers most performers, and heavy daily use may need Claude Max. If your plan lapsed while you were away, the sign-in will not stick. The symptom is specific: /login runs, the browser opens, you approve it, and you land right back at the same message. If that is what you are seeing, check the plan on your Claude account before trying anything else here.
Do I have to move to the desktop app?
No. It is fine to stay on the terminal, and there is no requirement to move. The same license opens your existing setup in the desktop app if you ever want it, but there is no pressure and no rush. If you want an honest comparison of the two before you decide, read Otto or the terminal: which door should you use?
How people describe this when they write in
If any of this sounds like something you would have typed, you are on the right page. One performer wrote: "I was originally using the terminal but now I can't login. It keeps showing me Login expired. I don't know what to do! Everything I try typing it just comes back with this. What am I missing? I was always logged in but took a break for a few weeks." Another sent a screenshot and said "I already force quit the app and run it again and it show me the samething", on Booked solid version 1.7.13. A third, after a first answer from us that pointed him at the wrong thing entirely, came back with "Still stuck after trying that". All three were the same expired Claude sign-in.
Related articles
- Get Otto ready: the one-tap assistant setup screen
- Power view: the built-in terminal for power users
- Otto or the terminal: which door should you use?
- Coming from the terminal version: your old commands in the new app
Still stuck? Submit a ticket from this help center and tell us three things: whether you are in the app or the terminal, the exact wording on your screen, and which step above you reached. That is usually enough for us to solve it on the first reply.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article