Skip to content

Troubleshooting

Most problems come down to one of three things: the client can’t connect, a request is refused, or a change didn’t run. Here’s where each shows up and how to fix it.

“Not connected”, sign-in fails, or requests are refused from the start.

  • No access rule for the source. A valid token or sign-in isn’t enough — the request must come from a source the site allows and the person’s rules allow. A brand-new site has no rules and refuses everyone. Check Configuration ▸ Network access: add the rule for the client (Claude, ChatGPT, or a network), and make sure the person isn’t flagged as having no rules.
  • No grant (OAuth clients). ChatGPT and Claude sign in as the person, so the person needs scopes granted first. With none, they can’t connect at all — set them under Configuration ▸ Grants.
  • Token revoked or expired. Check its state on Connect ▸ Tokens; mint a fresh one if so.
  • Wrong server URL. Confirm the client has the exact MCP server address from the Connect sub-tab.

The AI proposed a change, but approving it (or running it) failed.

  • Missing import right. A user can only run the import types their Fishbowl group allows. Ask “what am I allowed to import?”, or check the user’s Fishbowl rights. The full list is in Reference.
  • Order status not allowed. Whether an order may be set to Issued also follows the approver’s Fishbowl group rights, not a scope.
  • Missing scope. A write needs the right scope (imports:write, reports:install, …) on the connection — see Reference ▸ Access scopes.
  • A referenced record doesn’t exist. Orders and some imports don’t create customers, vendors, parts, or BOMs — those must already exist. The proposal’s error says which one is missing.
  • A row failed mid-batch. A change set runs in order and stops at the first failure, so a bad row leaves the rest unwritten. Fix that row and re-run; the Change log shows where it stopped.

A read returned nothing, or the wrong thing

Section titled “A read returned nothing, or the wrong thing”
  • Blocked column or table. The SQL guard refuses blocked columns and tables for everyone, and PII suppression hides personal fields. If a legitimate read comes back empty, check Configuration ▸ MySQL access.
  • Raw SQL needs an admin. sql_query and sql_schema are MCP-admin only; a non-admin reads through saved queries. If ad-hoc lookups “don’t work” for a user, that’s why.
  • Timed out. Reads are killed at the server timeout. A slow query comes back as a timeout in the Query log — narrow it and try again.
  • Not installed yet. Drafting and previewing don’t install anything — the operator has to approve the install. Confirm it under the right Reporting panel.
  • CloudPage needs reports:install. Publishing to production is a separate, per-person scope.
  • A TV screen shows nothing. It may be paired but unassigned, or its page was unpublished. Assign a page under Reporting ▸ TV dashboards. “Offline” means it hasn’t checked in for four minutes.
  • Logs — the Tool, Change, and Query logs show exactly what ran, what was refused, and why. Start here for anything that “didn’t work.”
  • Ask the AI to check. “What am I allowed to import?” and similar questions report the user’s own rights without a trip to Fishbowl.