# Troubleshooting

> From symptom to fix — no tools in the client, 401, rate limits, subscription notices, claude.ai reconnect, empty search.

On this page you will learn how to get from a symptom to its cause and fix it. Problems specific to the local agent (installation, uvx, session sync) are covered separately in [Agent troubleshooting](/agent/troubleshooting/).

## Quick check

Before digging into the client, check the server and your key directly:

```bash
curl -s -o /dev/null -w "%{http_code}\n" https://mcp.mmwhub.tech/mcp \
  -H "Authorization: Bearer $MMW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
```

- `200`: the key is accepted and the server works; look for the cause in the client settings.
- `401`: the key is not accepted; see "401 error" below.

## No MMW tools in the client

**Symptom:** the assistant does not see `remember` and `search`, and says it cannot remember things.

1. Restart the client after changing the MCP config: most clients read it only at startup.
2. Check the endpoint: `https://mcp.mmwhub.tech/mcp` (ending in `/mcp`) for a direct connection; with the agent, check that the config contains `MMW_API_KEY` and `MMW_ENDPOINT=https://mcp.mmwhub.tech`.
3. With the agent: make sure Python 3.11+ and `uv` are installed, and run `mmw-agent status` with the same key.
4. If you see only `mmw_sync_status`, the agent started but could not reach the server. Check the network and `MMW_ENDPOINT`.
5. In claude.ai, check that the connector is enabled in the current conversation.

Per-client instructions: [Clients](/clients/overview/).

## 401 error

**Symptom:** the client shows an authorization error, curl returns `401`, the agent says `MMW rejected the API key`.

- The key was copied partially or with extra spaces. A key starts with `mmw_`.
- The key was revoked or expired. Issue a new one in your account; an old key cannot be shown again.
- For a direct connection, the header must be exactly `Authorization: Bearer mmw_…`.
- The account was suspended by the operator: contact [support](/account/support/).

More in [API keys and OAuth](/account/api-keys-and-oauth/).

## claude.ai: the connector stopped working

**Symptom:** the MMW connector in claude.ai shows an error or asks you to sign in again.

The OAuth token claude.ai receives from MMW is valid for 30 days. If the connector stopped working, reconnect it: Settings → Connectors, MMW, disconnect and connect again, then paste your API key on the MMW page. The server keeps no sessions, so a pause alone does not break the connection.

## "MCP rate limit exceeded" or "project call limit exceeded"

**Symptom:** some calls return one of these errors.

The agent is making too many calls per minute. The limit counts the last 60 seconds, so calls go through again after a minute. If it happens regularly, ask the agent not to call `search` on every step, or upgrade. Numbers are on the [Limits](/reference/limits/) page.

## "workspace '…' is not active"

**Symptom:** `search` returns this error.

Nothing has been saved in a workspace with this name yet (search does not create workspaces), or it was deleted. Check the `workspace` parameter; the default is `default`. If the agent made up a workspace name, ask it to use the same name it used when saving. See [Workspaces and projects](/memory/workspaces-and-projects/).

## Subscription notices

**Symptom:** the response starts with `[MMW Notice]:`.

| Text starts with | What to do |
| --- | --- |
| `…has no active subscription…` | Activate a plan in your account. |
| `…subscription has expired. Memory is read-only during the grace period…` | Search works, saving and deleting do not. Renew the subscription. |
| `…account is suspended because its subscription expired…` | Renew the subscription; your data is kept. |

See [Plans and billing](/account/plans-and-billing/).

## Nothing is found

**Symptom:** `search` returns an empty list although the fact was saved.

- **Different project.** Memory is isolated per project: a key for project A does not see project B's records. Check which key was used to save.
- **Different workspace.** The record was not saved to `default`. Find it in your account's knowledge base and check its workspace.
- **Words did not match.** Search looks for the query words in the record text. Rephrase using terms from the record itself.
- **Filters.** `scope` or `exclude_stale: true` may have filtered the record out.
- **Organization.** The record is visible only to its author (draft) or to another department. See [Visibility](/organizations/visibility/).
- **The record was deleted** with `forget`.
- **Session history.** Uploaded Claude Code and Codex sessions do not appear in `search` yet: searching them is not built.

## A write was rejected

**Symptom:** `remember` returned an error.

The most common causes are `Memory rejected by Security Guard` (the text looks like an instruction for agents), `project memory limit exceeded` (plan limit) and `source_id is required when source_hash is provided`. The full list is on the [Errors](/reference/errors/) page.

If nothing here helps, email support@mmwhub.tech with the client, the exact error text and the time. Never send keys or memory content.

## Next steps
