{"title":"FAQ de troubleshooting","slug":"troubleshooting","category":"faq","summary":"Soluções para problemas comuns do Synapse — auth, rede, dados, deploy.","audience":["human","llm"],"tags":["faq","troubleshooting","problems","solutions"],"difficulty":"beginner","updated":"2026-06-27","word_count":718,"read_minutes":4,"lang":"pt","translated":true,"requested_lang":"pt","content_markdown":"\n# FAQ de troubleshooting\n\nSoluções para problemas comuns do Synapse.\n\n## Não consigo fazer login\n\n### Sintomas\n\n- `POST /login` retorna 401\n- \"Invalid email or password\"\n\n### Soluções\n\n1. **Verifique se o email está correto** — case sensitive\n2. **Confira a senha** — mínimo de 6 caracteres\n3. **Registre-se primeiro** se você não tem uma conta: `POST /register`\n4. **Redefina a senha** (se SMTP configurado) via interface web\n\n## Perdi minha Mind Key\n\n### Sintomas\n\n- Não consegue acessar memórias\n- A Mind Key foi excluída/perdida\n\n### Soluções\n\nMind Keys não podem ser recuperadas. Você deve:\n\n1. Fazer login para obter JWT: `POST /login`\n2. Listar minds: `GET /minds` (com JWT)\n3. Criar novo mind: `POST /minds`\n4. Salvar a nova Mind Key\n5. (Opcional) Excluir mind antigo: `DELETE /minds/:id`\n\n**Dados no mind antigo são perdidos** a menos que você encontre a Mind Key.\n\n## Chamadas de API retornam 401\n\n### Sintomas\n\n- Todas as chamadas de API retornam 401 Unauthorized\n- \"Mind Key fehlt oder ungültig\"\n\n### Soluções\n\n1. **Verifique o formato do cabeçalho**: `Authorization: Bearer mk_...`\n2. **Confira se a Mind Key começa com `mk_`** (não `eyJ` que é JWT)\n3. **Teste diretamente**:\n   ```bash\n   curl -H \"Authorization: Bearer mk_YOUR_KEY\" \\\n        https://synapse.schaefer.zone/memory/recall\n   ```\n4. **A Mind Key pode ter sido revogada** — crie um novo mind\n\nConsulte [Autenticação](/docs/getting-started/authentication).\n\n## Chamadas de API retornam 404\n\n### Sintomas\n\n- 404 Not Found\n- \"Route not found\"\n\n### Soluções\n\n> [!CRITICAL]\n> Não tente adivinhar caminhos de endpoint. Apenas os caminhos em\n> `GET /endpoints` existem.\n\n1. **Confira endpoints válidos**: `curl https://synapse.schaefer.zone/endpoints`\n2. **Compare a URL exatamente** — case sensitive, sem barras no final\n3. **Confira o método HTTP** — `GET /memory` vs `POST /memory` são diferentes\n\n## Chamadas de API retornam 429\n\n### Sintomas\n\n- 429 Too Many Requests\n- \"Rate limit exceeded\"\n\n### Soluções\n\n1. **Mude para auth por cabeçalho** (sem limite de taxa):\n   ```bash\n   # Don't\n   curl \".../memory/recall?key=mk_...\"\n   \n   # Do\n   curl -H \"Authorization: Bearer mk_...\" .../memory/recall\n   ```\n2. **Aguarde `Retry-After` segundos** se precisar usar `?key=`\n\nConsulte [Limites de taxa](/docs/api/rate-limits).\n\n## Busca de memória não retorna resultados\n\n### Sintomas\n\n- `GET /memory/search?q=...` retorna vazio\n- Sabe que memórias existem\n\n### Soluções\n\n1. **Verifique se as memórias existem**: `GET /memory/recall`\n2. **Confira a sintaxe de busca** — FTS5 tem sintaxe específica\n3. **Tente uma consulta mais simples** — `?q=docker` em vez de `?q=docker+swarm+deployment`\n4. **Use busca semântica** para consultas conceituais: `GET /memory/semantic-search?q=...`\n\nConsulte [Busca FTS5](/docs/concepts/fts5-search).\n\n## Memórias não estão persistindo\n\n### Sintomas\n\n- POST /memory retorna sucesso\n- GET /memory/recall não as mostra\n\n### Soluções\n\n1. **Verifique se é a mesma Mind Key** — keys diferentes = minds diferentes\n2. **Confira a resposta** — POST retorna `{ \"id\": \"mem_...\", \"status\": \"stored\" }`\n3. **Tente GET /memory** (lista JSON) em vez de /memory/recall (texto)\n4. **Confira o filtro** — `?category=` ou `?tag=` podem estar ocultando-as\n\n## Ferramentas não aparecem no Claude Desktop\n\n### Sintomas\n\n- Claude Desktop mostra 0 ferramentas\n- Sem ícone 🔌\n\n### Soluções\n\n1. **Reinicie o Claude Desktop completamente** (Cmd+Q)\n2. **Verifique se o arquivo de config é JSON válido**\n3. **Confirme Node.js 18+** instalado\n4. **Rode o MCP manualmente**: `npx -y synapse-mcp-api@latest`\n5. **Confira os logs**: `~/Library/Logs/Claude/mcp.log`\n\nConsulte [MCP Troubleshooting](/docs/mcp/troubleshooting).\n\n## Synapse está offline\n\n### Sintomas\n\n- Não consegue acessar synapse.schaefer.zone\n- curl dá timeout\n\n### Soluções\n\n1. **Verifique sua internet** — tente outro site\n2. **Confira a saúde do Synapse**: `curl https://synapse.schaefer.zone/health`\n3. **Aguarde** — pode ser outage temporário ou deploy\n4. **Confira a página de status** (se disponível)\n\nPara auto-hospedagem: confira o status do container Docker, conexão com banco.\n\n## Erros de banco de dados\n\n### Sintomas\n\n- 500 Internal Server Error\n- \"Database connection failed\"\n\n### Soluções\n\nPara auto-hospedagem:\n\n1. **Verifique se PostgreSQL está rodando**: `docker ps | grep postgres`\n2. **Confira DATABASE_URL** no env\n3. **Confira as migrations**: `npm run migrate:check`\n4. **Confira espaço em disco**: `df -h`\n\nPara versão hospedada: reporte ao suporte.\n\n## Webhook não dispara\n\n### Sintomas\n\n- Registrou webhook mas não recebe callbacks\n- Nenhum POST na sua URL\n\n### Soluções\n\n1. **Verifique se a URL é alcançável**: `curl -X POST your-url -d '{}'`\n2. **Confira o filtro de eventos** — `memory.*` corresponde a todos os eventos de memória\n3. **Teste o webhook**: `POST /webhooks/:id/test`\n4. **Confira se o webhook está habilitado**: `GET /webhooks/:id`\n5. **Verifique SSL** — o Synapse requer HTTPS válido para URLs de webhook\n\nConsulte [API de Webhooks](/docs/api/webhooks).\n\n## Cron job não roda\n\n### Sintomas\n\n- Criou cron job mas não dispara\n- `next_run` não atualiza\n\n### Soluções\n\n1. **Confira a sintaxe de agendamento** — deve ser cron de 5 campos válido OU inteiro em segundos\n2. **Verifique se o endpoint é permitido** — deve ser http(s), sem IPs privados\n3. **Confira se o job está habilitado**: `GET /cron`\n4. **Aguarde o próximo horário agendado** — cron não é instantâneo\n\nConsulte [Cron & Agendador](/docs/api/cron).\n\n## Precisa de mais ajuda?\n\n1. **Confira a documentação existente**: <https://synapse.schaefer.zone/docs>\n2. **Busque na documentação**: `GET /docs/search?q=your+question`\n3. **Abra uma issue**: <https://gitlab.com/schaefer-services/synapse/-/issues>\n4. **Contato**: consulte a página `/support`\n\n## Próximos passos\n\n- [Erros e tratamento de erros](/docs/api/errors)\n- [FAQ da API](/docs/faq/api-faq)\n- [MCP Troubleshooting](/docs/mcp/troubleshooting)\n","content_html":"<h1>FAQ de troubleshooting</h1>\n<p>Soluções para problemas comuns do Synapse.</p>\n<h2>Não consigo fazer login</h2>\n<h3>Sintomas</h3>\n<ul>\n<li><code>POST /login</code> retorna 401</li>\n<li>&quot;Invalid email or password&quot;</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Verifique se o email está correto</strong> — case sensitive</li>\n<li><strong>Confira a senha</strong> — mínimo de 6 caracteres</li>\n<li><strong>Registre-se primeiro</strong> se você não tem uma conta: <code>POST /register</code></li>\n<li><strong>Redefina a senha</strong> (se SMTP configurado) via interface web</li>\n</ol>\n<h2>Perdi minha Mind Key</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>Não consegue acessar memórias</li>\n<li>A Mind Key foi excluída/perdida</li>\n</ul>\n<h3>Soluções</h3>\n<p>Mind Keys não podem ser recuperadas. Você deve:</p>\n<ol>\n<li>Fazer login para obter JWT: <code>POST /login</code></li>\n<li>Listar minds: <code>GET /minds</code> (com JWT)</li>\n<li>Criar novo mind: <code>POST /minds</code></li>\n<li>Salvar a nova Mind Key</li>\n<li>(Opcional) Excluir mind antigo: <code>DELETE /minds/:id</code></li>\n</ol>\n<p><strong>Dados no mind antigo são perdidos</strong> a menos que você encontre a Mind Key.</p>\n<h2>Chamadas de API retornam 401</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>Todas as chamadas de API retornam 401 Unauthorized</li>\n<li>&quot;Mind Key fehlt oder ungültig&quot;</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Verifique o formato do cabeçalho</strong>: <code>Authorization: Bearer mk_...</code></li>\n<li><strong>Confira se a Mind Key começa com <code>mk_</code></strong> (não <code>eyJ</code> que é JWT)</li>\n<li><strong>Teste diretamente</strong>:<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer mk_YOUR_KEY&quot;</span> \\\n     https://synapse.schaefer.zone/memory/recall</code></pre></li>\n<li><strong>A Mind Key pode ter sido revogada</strong> — crie um novo mind</li>\n</ol>\n<p>Consulte <a href=\"/docs/getting-started/authentication\">Autenticação</a>.</p>\n<h2>Chamadas de API retornam 404</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>404 Not Found</li>\n<li>&quot;Route not found&quot;</li>\n</ul>\n<h3>Soluções</h3>\n<div class=\"callout callout-critical\">Não tente adivinhar caminhos de endpoint. Apenas os caminhos em\n`GET /endpoints` existem.</div><ol>\n<li><strong>Confira endpoints válidos</strong>: <code>curl https://synapse.schaefer.zone/endpoints</code></li>\n<li><strong>Compare a URL exatamente</strong> — case sensitive, sem barras no final</li>\n<li><strong>Confira o método HTTP</strong> — <code>GET /memory</code> vs <code>POST /memory</code> são diferentes</li>\n</ol>\n<h2>Chamadas de API retornam 429</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>429 Too Many Requests</li>\n<li>&quot;Rate limit exceeded&quot;</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Mude para auth por cabeçalho</strong> (sem limite de taxa):<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Don&#x27;t</span>\ncurl <span class=\"hljs-string\">&quot;.../memory/recall?key=mk_...&quot;</span>\n\n<span class=\"hljs-comment\"># Do</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer mk_...&quot;</span> .../memory/recall</code></pre></li>\n<li><strong>Aguarde <code>Retry-After</code> segundos</strong> se precisar usar <code>?key=</code></li>\n</ol>\n<p>Consulte <a href=\"/docs/api/rate-limits\">Limites de taxa</a>.</p>\n<h2>Busca de memória não retorna resultados</h2>\n<h3>Sintomas</h3>\n<ul>\n<li><code>GET /memory/search?q=...</code> retorna vazio</li>\n<li>Sabe que memórias existem</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Verifique se as memórias existem</strong>: <code>GET /memory/recall</code></li>\n<li><strong>Confira a sintaxe de busca</strong> — FTS5 tem sintaxe específica</li>\n<li><strong>Tente uma consulta mais simples</strong> — <code>?q=docker</code> em vez de <code>?q=docker+swarm+deployment</code></li>\n<li><strong>Use busca semântica</strong> para consultas conceituais: <code>GET /memory/semantic-search?q=...</code></li>\n</ol>\n<p>Consulte <a href=\"/docs/concepts/fts5-search\">Busca FTS5</a>.</p>\n<h2>Memórias não estão persistindo</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>POST /memory retorna sucesso</li>\n<li>GET /memory/recall não as mostra</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Verifique se é a mesma Mind Key</strong> — keys diferentes = minds diferentes</li>\n<li><strong>Confira a resposta</strong> — POST retorna <code>{ &quot;id&quot;: &quot;mem_...&quot;, &quot;status&quot;: &quot;stored&quot; }</code></li>\n<li><strong>Tente GET /memory</strong> (lista JSON) em vez de /memory/recall (texto)</li>\n<li><strong>Confira o filtro</strong> — <code>?category=</code> ou <code>?tag=</code> podem estar ocultando-as</li>\n</ol>\n<h2>Ferramentas não aparecem no Claude Desktop</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>Claude Desktop mostra 0 ferramentas</li>\n<li>Sem ícone 🔌</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Reinicie o Claude Desktop completamente</strong> (Cmd+Q)</li>\n<li><strong>Verifique se o arquivo de config é JSON válido</strong></li>\n<li><strong>Confirme Node.js 18+</strong> instalado</li>\n<li><strong>Rode o MCP manualmente</strong>: <code>npx -y synapse-mcp-api@latest</code></li>\n<li><strong>Confira os logs</strong>: <code>~/Library/Logs/Claude/mcp.log</code></li>\n</ol>\n<p>Consulte <a href=\"/docs/mcp/troubleshooting\">MCP Troubleshooting</a>.</p>\n<h2>Synapse está offline</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>Não consegue acessar synapse.schaefer.zone</li>\n<li>curl dá timeout</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Verifique sua internet</strong> — tente outro site</li>\n<li><strong>Confira a saúde do Synapse</strong>: <code>curl https://synapse.schaefer.zone/health</code></li>\n<li><strong>Aguarde</strong> — pode ser outage temporário ou deploy</li>\n<li><strong>Confira a página de status</strong> (se disponível)</li>\n</ol>\n<p>Para auto-hospedagem: confira o status do container Docker, conexão com banco.</p>\n<h2>Erros de banco de dados</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>500 Internal Server Error</li>\n<li>&quot;Database connection failed&quot;</li>\n</ul>\n<h3>Soluções</h3>\n<p>Para auto-hospedagem:</p>\n<ol>\n<li><strong>Verifique se PostgreSQL está rodando</strong>: <code>docker ps | grep postgres</code></li>\n<li><strong>Confira DATABASE_URL</strong> no env</li>\n<li><strong>Confira as migrations</strong>: <code>npm run migrate:check</code></li>\n<li><strong>Confira espaço em disco</strong>: <code>df -h</code></li>\n</ol>\n<p>Para versão hospedada: reporte ao suporte.</p>\n<h2>Webhook não dispara</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>Registrou webhook mas não recebe callbacks</li>\n<li>Nenhum POST na sua URL</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Verifique se a URL é alcançável</strong>: <code>curl -X POST your-url -d &#39;{}&#39;</code></li>\n<li><strong>Confira o filtro de eventos</strong> — <code>memory.*</code> corresponde a todos os eventos de memória</li>\n<li><strong>Teste o webhook</strong>: <code>POST /webhooks/:id/test</code></li>\n<li><strong>Confira se o webhook está habilitado</strong>: <code>GET /webhooks/:id</code></li>\n<li><strong>Verifique SSL</strong> — o Synapse requer HTTPS válido para URLs de webhook</li>\n</ol>\n<p>Consulte <a href=\"/docs/api/webhooks\">API de Webhooks</a>.</p>\n<h2>Cron job não roda</h2>\n<h3>Sintomas</h3>\n<ul>\n<li>Criou cron job mas não dispara</li>\n<li><code>next_run</code> não atualiza</li>\n</ul>\n<h3>Soluções</h3>\n<ol>\n<li><strong>Confira a sintaxe de agendamento</strong> — deve ser cron de 5 campos válido OU inteiro em segundos</li>\n<li><strong>Verifique se o endpoint é permitido</strong> — deve ser http(s), sem IPs privados</li>\n<li><strong>Confira se o job está habilitado</strong>: <code>GET /cron</code></li>\n<li><strong>Aguarde o próximo horário agendado</strong> — cron não é instantâneo</li>\n</ol>\n<p>Consulte <a href=\"/docs/api/cron\">Cron &amp; Agendador</a>.</p>\n<h2>Precisa de mais ajuda?</h2>\n<ol>\n<li><strong>Confira a documentação existente</strong>: <a href=\"https://synapse.schaefer.zone/docs\">https://synapse.schaefer.zone/docs</a></li>\n<li><strong>Busque na documentação</strong>: <code>GET /docs/search?q=your+question</code></li>\n<li><strong>Abra uma issue</strong>: <a href=\"https://gitlab.com/schaefer-services/synapse/-/issues\">https://gitlab.com/schaefer-services/synapse/-/issues</a></li>\n<li><strong>Contato</strong>: consulte a página <code>/support</code></li>\n</ol>\n<h2>Próximos passos</h2>\n<ul>\n<li><a href=\"/docs/api/errors\">Erros e tratamento de erros</a></li>\n<li><a href=\"/docs/faq/api-faq\">FAQ da API</a></li>\n<li><a href=\"/docs/mcp/troubleshooting\">MCP Troubleshooting</a></li>\n</ul>\n","urls":{"html":"/docs/faq/troubleshooting","text":"/docs/faq/troubleshooting?format=text","json":"/docs/faq/troubleshooting?format=json","llm":"/docs/faq/troubleshooting?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}