Composway Docs

Troubleshooting

The failures people actually hit - stalled calls, missing confirmations, empty results - and what each one means.

A tool call hangs, then times out

Almost always a long-running analysis being awaited synchronously. Evaluation and optimization are asynchronous by design: evaluate_article and optimize_article return a job id straight away, and the result arrives through get_evaluation_result, polled about every 5 seconds.

If your assistant appears to be waiting on one of those directly, ask it to poll the job instead. Campaign creation behaves the same way - poll get_campaign, do not wait on create_ai_campaign.

The server asked me to confirm something, but no prompt appeared

Some MCP clients advertise support for the server's detailed confirmation prompts and then never show them. Rather than hang the call, the server waits 60 seconds and falls back to your client's own approval step - the one that fires for any non-read-only tool.

The practical effect: on those clients you approve the tool, not the specific change, so read what your assistant says it is about to do. Spending caps are enforced in the backend either way and do not depend on the prompt.

A write finished, but I never approved it

Check whether your client auto-approves tools. Some allow a "always allow this tool" setting that suppresses both layers of confirmation. Composway cannot detect or override that from the server side - the client is what asks you.

An evaluation result comes back shorter than the one in the app

Deliberate. A full evaluation result runs to roughly 1.8 MB, mostly per-entity suggestions, which is too large to travel over an MCP connection - clients stall rather than deliver it. Results returned through MCP are a compact digest: every field is kept except the full entity-suggestion map, which is replaced with the top 20 suggestions by quality plus a total count.

The web app still shows the complete result. If you need every entity, open the campaign in Composway.

My site has no data

Run get_connection_status before concluding anything. It reports whether Google Search Console and Bing Webmaster Tools are actually attached and how fresh each one is. An unattached engine reads as read: false in tool responses, which is different from measuring zero.

Two more things that look like missing data but are not:

  • Search Console history starts when the property was verified. A short backfill is usually Google's limit, not a bug.
  • Bing reports position weekly only, and both engines' traffic feeds are top-N above a certain size. Tools say so in unsupportedInputs when it applies to the window you asked for.

Tools behave differently than my assistant expects

The tool surface changes as the product does. get_server_status returns a schemaVersion and a changelog; when the version differs from what your client cached, the client should re-run discovery and rebuild its tool arguments. get_tool_manifest gives a hash per tool schema for the same purpose.

The server emits a tools/list_changed notification when it notices a live session on an old version, but a client that ignores it can keep calling an old shape. Reconnecting the server clears it.

Everything fails as unauthenticated

Your session could not be refreshed - revoked, or lapsed after a long idle period. Remove and re-add the server in your client and sign in again. See Authentication.