vibecms.docs
Agent workflows

Conflicts and recovery

Recover safely from stale versions, validation failures, missing resources, and rate limits.

CONFLICT

A version conflict means the expected draft tip is stale or another write won the race. Do not retry blindly.

  1. Fetch the post again.
  2. Inspect the current version history.
  3. Reapply or reconcile the intended change.
  4. Preview the saved result.
  5. Request fresh approval before publishing.

A create or update conflict may also indicate a slug collision. Inspect existing posts before choosing a new slug or updating the existing post.

Other errors

Code Response
VALIDATION_ERROR Correct the rejected input. Do not bypass validation.
FORBIDDEN Explain the missing scope. Do not widen the token automatically.
NOT_FOUND Re-list or re-fetch identifiers before retrying.
RATE_LIMIT Wait until reset, then retry only the still-requested action.
BILLING_REQUIRED Leave the draft intact and explain the subscription blocker.

REST returns structured HTTP errors: a status code plus a JSON body {"error": {"code", "message", ...}}. MCP surfaces the same failures differently. A failed tool call comes back as a normal JSON-RPC result (usually HTTP 200) with result.isError: true and the machine-readable error object in result.structuredContent (also JSON-encoded in result.content[0].text). Authentication failures, malformed requests, and protocol-level problems instead use a top-level JSON-RPC error object. Handle both shapes.