# Errors and fixes for WhatsDo MCP | WhatsDo Docs

URL: https://whatsdo.ai/docs/errors

Skip to contentDocumentationTools reference

Sign inGet API key

Search the docs menu

Get started
- Overview
- Quickstart
- Connect your agent
- Keys and sign-in

Guides
- Book a table
- Shortlist restaurants
- Café and a walk
- Massage, salon, yoga
- Local market signals

Reference
- Tools
- Booking statuses
- Limits
- Errors and fixes

# Errors and fixes

What goes wrong most often and how to fix it.

## Connection

| What you see | What to do |
| --- | --- |
| A redirect on POST to /mcp | Use https://app.whatsdo.com/mcp/ with the trailing slash. Not every client follows a redirect on POST. |
| 401 on the first call | Expected 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 work | Keys 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 screen | Use these docs at whatsdo.ai/docs. |
| ChatGPT answers without calling WhatsDo | Start the request with “Use WhatsDo to …”. |

## Search

| What you see | What to do |
| --- | --- |
| A city outside San Francisco | WhatsDo search covers San Francisco. Tell the person once that new cities are available on request and offer to send a city request. |
| location_missing: true | The 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 neighborhood | Put the neighborhood in location, not in query. Results can still include places nearby. |
| Empty hours or price | Treat both as unknown. |
| open_at keeps a place with no hours | The filter uses listed hours. A place with empty hours can pass. |

## Booking

| What you see | What to do |
| --- | --- |
| is_bookable is true, booking is not possible | is_bookable is a hint. Call get_booking_requirements and check available first. |
| available: false | Check 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 offered | Send 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 happens | Nothing is pushed. Poll my_bookings about every 30 seconds for up to about five minutes. |
| source changed to manual | A WhatsDo team member is finishing the booking. Keep polling. |
| confirmed, but message says nothing was submitted | Treat it as not booked. Show both and ask the person to check with the venue. |
| requires_payment | Answer the follow-up with continue_booking. Payment happens on the venue’s own page. |
| A booking fails asking for a phone | Ask the person for their own phone and pass it as phone in a new book call. |
| cancellation_requested, still confirmed | A 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 reply | The message is in result.content[0].text. Show the person what failed, not the raw text. |

On this page

- Connection
- Search
- BookingCopy page

© WhatsDo

## Product

MCPPlacesBookingPayments

## Build

ConnectDocsUse cases

## WhatsDo

For businessesTalk to usPrivacy policyTerms of serviceCookie policySite map
