Skip to content

Errors and fixes

What goes wrong most often and how to fix it.

Connection

What you seeWhat to do
A redirect on POST to /mcpUse https://app.whatsdo.com/mcp/ with the trailing slash. Not every client follows a redirect on POST.
401 on the first callExpected before sign-in: the client should open the WhatsDo sign-in. With an API key, check that the Authorization header reaches the server.
401 with a key that used to workKeys expire after 90 days. Create a new one.
Missing required scope: <scope>The key lacks that tool’s scope. A new portal key has no bookings:write unless you tick it. Create a key with the scope. See Scopes.
Rate limit reached for <tool>Too many calls to that tool in an hour. Wait and retry later: the window is rolling, per key. See Limits.
The documentation link in the sign-in metadata opens a login screenUse these docs at whatsdo.ai/docs.
ChatGPT answers without calling WhatsDoStart the request with “Use WhatsDo to …”.
What you seeWhat to do
A city outside San FranciscoWhatsDo search covers San Francisco. Tell the person once that new cities are available on request and offer to send a city request.
location_missing: trueThe server had no location. Ask the person where they are and search again. Call set_location only if they ask to save a default.
Places outside the neighborhoodPut the neighborhood in location, not in query. Results can still include places nearby.
Empty hours or priceTreat both as unknown.
open_at keeps a place with no hoursThe filter uses listed hours. A place with empty hours can pass.

Booking

What you seeWhat to do
is_bookable is true, booking is not possibleis_bookable is a hint. Call get_booking_requirements and check available first.
available: falseCheck reason: the place cannot be booked through WhatsDo (offer its phone number), or its rules could not be read right now (try again).
Booked at the wrong hour, or odd times offeredSend date_time with an offset: -07:00 in summer time, -08:00 in winter time. A UTC time is read as local time.
pending and nothing happensNothing is pushed. Poll my_bookings about every 30 seconds for up to about five minutes.
source changed to manualA WhatsDo team member is finishing the booking. Keep polling.
confirmed, but message says nothing was submittedTreat it as not booked. Show both and ask the person to check with the venue.
requires_paymentAnswer the follow-up with continue_booking. Payment happens on the venue’s own page.
A booking fails asking for a phoneAsk the person for their own phone and pass it as phone in a new book call.
cancellation_requested, still confirmedA WhatsDo team member cancels by hand. The status changes once they do.
Calendar tool: “No Google Calendar connected”Skip the calendar step. It is not a booking failure.
isError: true in a replyThe message is in result.content[0].text. Show the person what failed, not the raw text.