Skip to content

Errors & refusals

When VibeSell refuses a call — a missing filter, a step not reached, a quota hit — the tool returns a normal MCP result with isError: true and a text the assistant should read and act on. A refusal has no structuredContent: it is not a result of that tool.

Every refusal is built the same way:

  1. The reason, in a sentence.
  2. The next step, when the MCP has one to suggest.
  3. “Nothing was changed.” — always, so nobody wonders whether something half-ran.
Situation What the assistant reads
Read-only connection calling an act tool This VibeSell connection can only read. To let it act, the user disconnects VibeSell in this app and connects it again, then accepts on VibeSell's page. Nothing was changed.
VibeSell’s agent is busy on the workspace VibeSell's agent is working in the VibeSell app right now, on this same workspace. Try again in a minute, once it has answered there.
A tool of a later step This opens later in VibeSell: <step>. Reason: this step opens once the workspace reaches “<step>”.
Too many calls to a provider tool This connection called <tool> more than 30 times in 10 minutes. Wait n minutes…
The sending fleet already covers the sizing The sending setup is already in place: n domain(s) and m mailbox(es) carry the sizing on record…
A confirmation without its precondition e.g. confirm_target before a preview of this target.
A filter value VibeSell doesn’t recognise in a saved target The value is refused and named back; the rest is saved.
Something failed on VibeSell’s side VibeSell could not run this tool just now. Nothing was imported or charged. Try again in a moment.

Arguments are validated against the tool’s input schema before VibeSell’s logic runs. A value outside an enumerated list — a country code, a seniority level, a plan code — makes the server’s MCP layer reject the whole call, not just that value. Take values only from the lists in the schema, or from the lead filter vocabulary.

Status When What to do
401 with WWW-Authenticate No token, or an invalid or expired one. The header carries resource_metadata and scope. Your client starts (or refreshes) the OAuth flow.
404 The MCP is turned off on this server. —
405 with Allow: POST A GET or DELETE on /v1/mcp: the server is stateless and pushes nothing. Send JSON-RPC over POST.

OAuth endpoints answer in the RFC format — { "error": "invalid_grant", "error_description": "…" }. See Authorization.