Skip to main content
Start with the exact supported archive and runtime profile. Source fixes and older artifacts can have different behavior. Record which archive and command failed before changing either.

A Connect conversation turn fails

In meerkat-connect, a confirmed failed turn can return to the You: prompt. Enter a new question there to continue the same conversation. Connect does not automatically retry the failed request. If Connect reports an uncertain effect, follow its restriction to status checks for that exact request. A new question does not authorize repeating the effect. If the CLI closes instead, starting it again creates a new conversation; it does not resume or replay the old request.

Bootstrap failed or was interrupted

Do not rerun bootstrap into the same client, output or workspace. It preserves partial directories; a timeout or lost response can occur after an owner has written valid receipts. A receipt’s presence alone does not establish that the whole bootstrap completed.
  1. Preserve the selected archive, command, fixed error code and partial outputs. Check that the bootstrap/installer process has settled before further work.
  2. Inspect the exact client installed.json, host prepared.json and available step logs. Compare them with the original inputs. Bootstrap normally verifies the client through the installer’s --verify-existing; do not replace that check with a directory-exists test.
  3. If the host validates a complete existing client, use prepare_host.py with its exact interpreter/hash and fresh output/workspace paths. Otherwise use a new bootstrap client, configuration and workspace. Preserve the previous attempt for inspection.
The timeout starts cancellation and waits for cleanup; it is not a strict whole-command wall-clock limit. A late cancellation can leave completed owner outputs with an unconfirmed caller result. No automatic cleanup, retry or credential repair follows from that outcome.

Preparation refuses paths or runtimes

The setup MCP worked once and refuses to restart

Its generated command creates one fresh workspace. It is not a restartable server command for that same directory. Keep one setup process alive for the original task, or use saved-work readback with new configuration/workspace paths after the old workers settle. Do not delete the old workspace to make the original command run again.

A saved setup file does not resume installation

That file selects retained requests. Use --recover-manifest for readback or --prior-manifest plus an exact request ID for a new configuration proposal. These are different workflows. Recovery restores no install or retry tools. matched is a current file observation; the old outcome can remain unconfirmed. Missing acquired files remain unresolved. If preparation rejects a saved file, verify its exact hash, original workspace, request anchors and original host bindings. Keep configured-install and acquisition-only requirements distinct. Do not rewrite hashes, discard a selected request or substitute a newer library to bypass the refusal.

The connector installed but no tools appear

Installation emits a launch; the host still needs to approve and register it. For Meerkat, follow the native MCP mapping and attachment guide. A staged result can precede a missing-executable or connection failure. Check native catalog search/load and an actual operation, keeping the setup server’s name and process stable. Two accounts can expose colliding tool names; use the host’s explicit naming map instead of assuming server-name prefixes.

Report a setup problem

Send the relevant host or release maintainer a bounded report containing:
  • Archive filename/SHA-256 and platform, architecture, libc and runtime versions.
  • The selected family/profile and exact command flags, with private values removed.
  • Which step failed, its fixed error code, job/request identifiers and whether the process settled or the result is unconfirmed.
  • The relevant receipt/check result and the smallest useful log excerpt.
Keep tokens, passwords, authorization URLs, callback material, private account content and whole saved-request files out of public reports. Use your application’s support route or the Connect issue tracker.

find_and_install returns unavailable

Check that the application enrolled its native setup owner, that the owner is active, and that the invocation carries the required authenticated context. Constructing a dispatcher alone does not bind that owner. See host composition.

A recipe exists but discovery cannot find it

Check the compiled include list in crates/toolkit-package/src/library.rs. Drive 0.1.0 and Slack 0.3.0 files currently exist outside that registered inventory. Also confirm whether the host chose the metadata-only catalog or the versioned library. A stale paging snapshot requires a fresh listing.

A read fails with a digest or unknown-field error

Use the exact identity, package digest and listed library digest. Do not substitute a newer version, normalize a publisher/name or omit required joined-recipe identity. The tools reject unknown fields and a guidance-only strategy cannot be promoted by adding made-up execution data.

Python refuses an unprepared client

Call prepare_httpx_client once at the host construction site before sharing the client. Keep its response hook first throughout borrowed use. require_prepared_httpx_client checks without mutating. Do not reorder hooks during active operations or patch around the refusal in each call.

An SDK call succeeded but the agent cannot use the tool

The SDK operation and the agent’s runtime binding are separate. Observe identity_resolved_tools for the actual member and perform a real dispatch through that surface. Check profile selection, package/grant revisions and the current target incarnation. Check the application’s restoration, helper and spawn configuration when a tool is available in one member but missing in another.

Startup shows progress but never reports ready

Inspect the native startup result and the configured startup budgets. A timeout or lost reply calls for reconciliation through the startup owner before another attempt. See native application lifecycle.

Authentication completed but access is denied

Check actual account identity, requested operations/resources, host grant and provider scope separately. Developer registration or administrator installation may still be missing. A saved connection is not a grant, and a broad provider credential does not establish the intended local restriction.

A write timed out or returned an HTTP error

Inspect the typed effect outcome. Once entered, a write can remain unknown even on an error response. Preserve the original business invocation and reconcile according to that provider/domain contract. Retry-After is not permission to replay; a Gmail Message-ID search is not proof that an earlier send did not happen.

Slack retrieval finished but the summary is incomplete

Inspect interval coverage_gaps, chain states and budgets. Older roots, hidden/deleted content, retention, permission and concurrent changes can limit results. finished only means the collector exhausted queued work. One page, a short page or an exhausted visible chain is not a global completeness proof.

A frontend receives events but cannot safely reply

Provider authenticity does not establish application admission or destination audience. Check the selected principal/conversation, reply route, current audience evidence and egress state. A queued retry cannot widen the audience or choose a different destination.

Shutdown exceeds an operation deadline

The deadline starts cancellation; retained cleanup is still awaited. Host hooks, Fetch, worker threads or native transport cleanup can be slow or noncooperative. Do not discard custody and claim a clean shutdown. Follow the selected lifecycle owner’s uncertainty/fencing contract.

A database has the expected version but fails to open

Preserve the database and exact dependency versions. Use the storage owner’s migration procedure and inspect the schema error before changing state.

The UI action shows uncertain acknowledgment

Read a fresh authenticated owner projection. A callback rejection or lost acknowledgment does not prove that the command failed. The renderer intentionally does not retry or invent a new action. Recovery controls must come from the owner.