{"title":"FAQ de solución de problemas","slug":"troubleshooting","category":"faq","summary":"Soluciones a problemas comunes de Synapse — autenticación, red, datos, despliegue.","audience":["human","llm"],"tags":["faq","troubleshooting","problems","solutions"],"difficulty":"beginner","updated":"2026-06-27","word_count":762,"read_minutes":4,"lang":"es","translated":true,"requested_lang":"es","content_markdown":"\n# FAQ de solución de problemas\n\nSoluciones a problemas comunes de Synapse.\n\n## No puedo iniciar sesión\n\n### Síntomas\n\n- `POST /login` devuelve 401\n- \"Invalid email or password\"\n\n### Soluciones\n\n1. **Verifique que el email es correcto** — sensible a mayúsculas/minúsculas\n2. **Compruebe la contraseña** — mínimo 6 caracteres\n3. **Regístrese primero** si no tiene cuenta: `POST /register`\n4. **Restablezca la contraseña** (si SMTP está configurado) vía la interfaz web\n\n## Perdí mi Mind Key\n\n### Síntomas\n\n- No puede acceder a las memorias\n- El Mind Key se eliminó/perdió\n\n### Soluciones\n\nLos Mind Keys no se pueden recuperar. Debe:\n\n1. Iniciar sesión para obtener JWT: `POST /login`\n2. Listar minds: `GET /minds` (con JWT)\n3. Crear un nuevo mind: `POST /minds`\n4. Guardar el nuevo Mind Key\n5. (Opcional) Eliminar el mind antiguo: `DELETE /minds/:id`\n\n**Los datos del mind antiguo se pierden** a menos que encuentre el Mind Key.\n\n## Las llamadas a la API devuelven 401\n\n### Síntomas\n\n- Todas las llamadas a la API devuelven 401 Unauthorized\n- \"Mind Key fehlt oder ungültig\"\n\n### Soluciones\n\n1. **Verifique el formato de la cabecera**: `Authorization: Bearer mk_...`\n2. **Compruebe que el Mind Key empieza por `mk_`** (no `eyJ`, que es JWT)\n3. **Pruebe directamente**:\n   ```bash\n   curl -H \"Authorization: Bearer mk_YOUR_KEY\" \\\n        https://synapse.schaefer.zone/memory/recall\n   ```\n4. **El Mind Key puede estar revocado** — cree un nuevo mind\n\nConsulte [Autenticación](/docs/getting-started/authentication).\n\n## Las llamadas a la API devuelven 404\n\n### Síntomas\n\n- 404 Not Found\n- \"Route not found\"\n\n### Soluciones\n\n> [!CRITICAL]\n> No adivine las rutas de los endpoints. Solo existen las rutas en\n> `GET /endpoints`.\n\n1. **Compruebe los endpoints válidos**: `curl https://synapse.schaefer.zone/endpoints`\n2. **Compare la URL exactamente** — sensible a mayúsculas/minúsculas, sin barras finales\n3. **Verifique el método HTTP** — `GET /memory` vs `POST /memory` son diferentes\n\n## Las llamadas a la API devuelven 429\n\n### Síntomas\n\n- 429 Too Many Requests\n- \"Rate limit exceeded\"\n\n### Soluciones\n\n1. **Cambie a auth por cabecera** (sin límite de frecuencia):\n   ```bash\n   # Don't\n   curl \".../memory/recall?key=mk_...\"\n   \n   # Do\n   curl -H \"Authorization: Bearer mk_...\" .../memory/recall\n   ```\n2. **Espere `Retry-After` segundos** si debe usar `?key=`\n\nConsulte [Límites de frecuencia](/docs/api/rate-limits).\n\n## La búsqueda de memoria no devuelve resultados\n\n### Síntomas\n\n- `GET /memory/search?q=...` devuelve vacío\n- Sabe que existen memorias\n\n### Soluciones\n\n1. **Verifique que existen memorias**: `GET /memory/recall`\n2. **Compruebe la sintaxis de búsqueda** — FTS5 tiene sintaxis específica\n3. **Pruebe una consulta más simple** — `?q=docker` en lugar de `?q=docker+swarm+deployment`\n4. **Use búsqueda semántica** para consultas conceptuales: `GET /memory/semantic-search?q=...`\n\nConsulte [Búsqueda FTS5](/docs/concepts/fts5-search).\n\n## Las memorias no persisten\n\n### Síntomas\n\n- POST /memory devuelve éxito\n- GET /memory/recall no las muestra\n\n### Soluciones\n\n1. **Verifique el mismo Mind Key** — claves diferentes = minds diferentes\n2. **Compruebe la respuesta** — POST devuelve `{ \"id\": \"mem_...\", \"status\": \"stored\" }`\n3. **Pruebe GET /memory** (lista JSON) en lugar de /memory/recall (texto)\n4. **Revise el filtro** — `?category=` o `?tag=` pueden estar ocultándolas\n\n## Las herramientas no aparecen en Claude Desktop\n\n### Síntomas\n\n- Claude Desktop muestra 0 herramientas\n- Sin icono 🔌\n\n### Soluciones\n\n1. **Reinicie Claude Desktop completamente** (Cmd+Q)\n2. **Verifique que el archivo de configuración es JSON válido**\n3. **Compruebe Node.js 18+** instalado\n4. **Ejecute MCP manualmente**: `npx -y synapse-mcp-api@latest`\n5. **Revise los logs**: `~/Library/Logs/Claude/mcp.log`\n\nConsulte [Solución de problemas de MCP](/docs/mcp/troubleshooting).\n\n## Synapse está fuera de línea\n\n### Síntomas\n\n- No puede alcanzar synapse.schaefer.zone\n- curl agota el tiempo de espera\n\n### Soluciones\n\n1. **Compruebe su internet** — pruebe otro sitio\n2. **Verifique la salud de Synapse**: `curl https://synapse.schaefer.zone/health`\n3. **Espere** — puede ser una interrupción temporal o un despliegue\n4. **Consulte la página de estado** (si está disponible)\n\nPara autoalojamiento: compruebe el estado del contenedor Docker y la conexión a\nla base de datos.\n\n## Errores de base de datos\n\n### Síntomas\n\n- 500 Internal Server Error\n- \"Database connection failed\"\n\n### Soluciones\n\nPara autoalojamiento:\n\n1. **Compruebe que PostgreSQL está corriendo**: `docker ps | grep postgres`\n2. **Verifique DATABASE_URL** en el entorno\n3. **Revise las migraciones**: `npm run migrate:check`\n4. **Compruebe el espacio en disco**: `df -h`\n\nPara la versión alojada: reporte a soporte.\n\n## El webhook no se dispara\n\n### Síntomas\n\n- Webhook registrado pero no recibe callbacks\n- Sin POST a su URL\n\n### Soluciones\n\n1. **Verifique que la URL es alcanzable**: `curl -X POST your-url -d '{}'`\n2. **Compruebe el filtro de eventos** — `memory.*` coincide con todos los eventos de memoria\n3. **Pruebe el webhook**: `POST /webhooks/:id/test`\n4. **Compruebe que el webhook está habilitado**: `GET /webhooks/:id`\n5. **Verifique el SSL** — Synapse requiere HTTPS válido para las URLs de webhook\n\nConsulte [API de Webhooks](/docs/api/webhooks).\n\n## El trabajo cron no se ejecuta\n\n### Síntomas\n\n- Trabajo cron creado pero no se dispara\n- `next_run` no se actualiza\n\n### Soluciones\n\n1. **Compruebe la sintaxis de programación** — debe ser cron de 5 campos válido O segundos enteros\n2. **Verifique que el endpoint está permitido** — debe ser http(s), sin IPs privadas\n3. **Compruebe que el trabajo está habilitado**: `GET /cron`\n4. **Espere a la próxima hora programada** — cron no es instantáneo\n\nConsulte [Cron y Scheduler](/docs/api/cron).\n\n## ¿Necesita más ayuda?\n\n1. **Consulte la documentación existente**: <https://synapse.schaefer.zone/docs>\n2. **Busque en la docs**: `GET /docs/search?q=your+question`\n3. **Abra un issue**: <https://gitlab.com/schaefer-services/synapse/-/issues>\n4. **Contacto**: consulte la página `/support`\n\n## Próximos pasos\n\n- [Errores y manejo de errores](/docs/api/errors)\n- [FAQ de la API](/docs/faq/api-faq)\n- [Solución de problemas de MCP](/docs/mcp/troubleshooting)\n","content_html":"<h1>FAQ de solución de problemas</h1>\n<p>Soluciones a problemas comunes de Synapse.</p>\n<h2>No puedo iniciar sesión</h2>\n<h3>Síntomas</h3>\n<ul>\n<li><code>POST /login</code> devuelve 401</li>\n<li>&quot;Invalid email or password&quot;</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Verifique que el email es correcto</strong> — sensible a mayúsculas/minúsculas</li>\n<li><strong>Compruebe la contraseña</strong> — mínimo 6 caracteres</li>\n<li><strong>Regístrese primero</strong> si no tiene cuenta: <code>POST /register</code></li>\n<li><strong>Restablezca la contraseña</strong> (si SMTP está configurado) vía la interfaz web</li>\n</ol>\n<h2>Perdí mi Mind Key</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>No puede acceder a las memorias</li>\n<li>El Mind Key se eliminó/perdió</li>\n</ul>\n<h3>Soluciones</h3>\n<p>Los Mind Keys no se pueden recuperar. Debe:</p>\n<ol>\n<li>Iniciar sesión para obtener JWT: <code>POST /login</code></li>\n<li>Listar minds: <code>GET /minds</code> (con JWT)</li>\n<li>Crear un nuevo mind: <code>POST /minds</code></li>\n<li>Guardar el nuevo Mind Key</li>\n<li>(Opcional) Eliminar el mind antiguo: <code>DELETE /minds/:id</code></li>\n</ol>\n<p><strong>Los datos del mind antiguo se pierden</strong> a menos que encuentre el Mind Key.</p>\n<h2>Las llamadas a la API devuelven 401</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>Todas las llamadas a la API devuelven 401 Unauthorized</li>\n<li>&quot;Mind Key fehlt oder ungültig&quot;</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Verifique el formato de la cabecera</strong>: <code>Authorization: Bearer mk_...</code></li>\n<li><strong>Compruebe que el Mind Key empieza por <code>mk_</code></strong> (no <code>eyJ</code>, que es JWT)</li>\n<li><strong>Pruebe directamente</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>El Mind Key puede estar revocado</strong> — cree un nuevo mind</li>\n</ol>\n<p>Consulte <a href=\"/docs/getting-started/authentication\">Autenticación</a>.</p>\n<h2>Las llamadas a la API devuelven 404</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>404 Not Found</li>\n<li>&quot;Route not found&quot;</li>\n</ul>\n<h3>Soluciones</h3>\n<div class=\"callout callout-critical\">No adivine las rutas de los endpoints. Solo existen las rutas en\n`GET /endpoints`.</div><ol>\n<li><strong>Compruebe los endpoints válidos</strong>: <code>curl https://synapse.schaefer.zone/endpoints</code></li>\n<li><strong>Compare la URL exactamente</strong> — sensible a mayúsculas/minúsculas, sin barras finales</li>\n<li><strong>Verifique el método HTTP</strong> — <code>GET /memory</code> vs <code>POST /memory</code> son diferentes</li>\n</ol>\n<h2>Las llamadas a la API devuelven 429</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>429 Too Many Requests</li>\n<li>&quot;Rate limit exceeded&quot;</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Cambie a auth por cabecera</strong> (sin límite de frecuencia):<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>Espere <code>Retry-After</code> segundos</strong> si debe usar <code>?key=</code></li>\n</ol>\n<p>Consulte <a href=\"/docs/api/rate-limits\">Límites de frecuencia</a>.</p>\n<h2>La búsqueda de memoria no devuelve resultados</h2>\n<h3>Síntomas</h3>\n<ul>\n<li><code>GET /memory/search?q=...</code> devuelve vacío</li>\n<li>Sabe que existen memorias</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Verifique que existen memorias</strong>: <code>GET /memory/recall</code></li>\n<li><strong>Compruebe la sintaxis de búsqueda</strong> — FTS5 tiene sintaxis específica</li>\n<li><strong>Pruebe una consulta más simple</strong> — <code>?q=docker</code> en lugar de <code>?q=docker+swarm+deployment</code></li>\n<li><strong>Use búsqueda semántica</strong> para consultas conceptuales: <code>GET /memory/semantic-search?q=...</code></li>\n</ol>\n<p>Consulte <a href=\"/docs/concepts/fts5-search\">Búsqueda FTS5</a>.</p>\n<h2>Las memorias no persisten</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>POST /memory devuelve éxito</li>\n<li>GET /memory/recall no las muestra</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Verifique el mismo Mind Key</strong> — claves diferentes = minds diferentes</li>\n<li><strong>Compruebe la respuesta</strong> — POST devuelve <code>{ &quot;id&quot;: &quot;mem_...&quot;, &quot;status&quot;: &quot;stored&quot; }</code></li>\n<li><strong>Pruebe GET /memory</strong> (lista JSON) en lugar de /memory/recall (texto)</li>\n<li><strong>Revise el filtro</strong> — <code>?category=</code> o <code>?tag=</code> pueden estar ocultándolas</li>\n</ol>\n<h2>Las herramientas no aparecen en Claude Desktop</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>Claude Desktop muestra 0 herramientas</li>\n<li>Sin icono 🔌</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Reinicie Claude Desktop completamente</strong> (Cmd+Q)</li>\n<li><strong>Verifique que el archivo de configuración es JSON válido</strong></li>\n<li><strong>Compruebe Node.js 18+</strong> instalado</li>\n<li><strong>Ejecute MCP manualmente</strong>: <code>npx -y synapse-mcp-api@latest</code></li>\n<li><strong>Revise los logs</strong>: <code>~/Library/Logs/Claude/mcp.log</code></li>\n</ol>\n<p>Consulte <a href=\"/docs/mcp/troubleshooting\">Solución de problemas de MCP</a>.</p>\n<h2>Synapse está fuera de línea</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>No puede alcanzar synapse.schaefer.zone</li>\n<li>curl agota el tiempo de espera</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Compruebe su internet</strong> — pruebe otro sitio</li>\n<li><strong>Verifique la salud de Synapse</strong>: <code>curl https://synapse.schaefer.zone/health</code></li>\n<li><strong>Espere</strong> — puede ser una interrupción temporal o un despliegue</li>\n<li><strong>Consulte la página de estado</strong> (si está disponible)</li>\n</ol>\n<p>Para autoalojamiento: compruebe el estado del contenedor Docker y la conexión a\nla base de datos.</p>\n<h2>Errores de base de datos</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>500 Internal Server Error</li>\n<li>&quot;Database connection failed&quot;</li>\n</ul>\n<h3>Soluciones</h3>\n<p>Para autoalojamiento:</p>\n<ol>\n<li><strong>Compruebe que PostgreSQL está corriendo</strong>: <code>docker ps | grep postgres</code></li>\n<li><strong>Verifique DATABASE_URL</strong> en el entorno</li>\n<li><strong>Revise las migraciones</strong>: <code>npm run migrate:check</code></li>\n<li><strong>Compruebe el espacio en disco</strong>: <code>df -h</code></li>\n</ol>\n<p>Para la versión alojada: reporte a soporte.</p>\n<h2>El webhook no se dispara</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>Webhook registrado pero no recibe callbacks</li>\n<li>Sin POST a su URL</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Verifique que la URL es alcanzable</strong>: <code>curl -X POST your-url -d &#39;{}&#39;</code></li>\n<li><strong>Compruebe el filtro de eventos</strong> — <code>memory.*</code> coincide con todos los eventos de memoria</li>\n<li><strong>Pruebe el webhook</strong>: <code>POST /webhooks/:id/test</code></li>\n<li><strong>Compruebe que el webhook está habilitado</strong>: <code>GET /webhooks/:id</code></li>\n<li><strong>Verifique el SSL</strong> — Synapse requiere HTTPS válido para las URLs de webhook</li>\n</ol>\n<p>Consulte <a href=\"/docs/api/webhooks\">API de Webhooks</a>.</p>\n<h2>El trabajo cron no se ejecuta</h2>\n<h3>Síntomas</h3>\n<ul>\n<li>Trabajo cron creado pero no se dispara</li>\n<li><code>next_run</code> no se actualiza</li>\n</ul>\n<h3>Soluciones</h3>\n<ol>\n<li><strong>Compruebe la sintaxis de programación</strong> — debe ser cron de 5 campos válido O segundos enteros</li>\n<li><strong>Verifique que el endpoint está permitido</strong> — debe ser http(s), sin IPs privadas</li>\n<li><strong>Compruebe que el trabajo está habilitado</strong>: <code>GET /cron</code></li>\n<li><strong>Espere a la próxima hora programada</strong> — cron no es instantáneo</li>\n</ol>\n<p>Consulte <a href=\"/docs/api/cron\">Cron y Scheduler</a>.</p>\n<h2>¿Necesita más ayuda?</h2>\n<ol>\n<li><strong>Consulte la documentación existente</strong>: <a href=\"https://synapse.schaefer.zone/docs\">https://synapse.schaefer.zone/docs</a></li>\n<li><strong>Busque en la docs</strong>: <code>GET /docs/search?q=your+question</code></li>\n<li><strong>Abra un issue</strong>: <a href=\"https://gitlab.com/schaefer-services/synapse/-/issues\">https://gitlab.com/schaefer-services/synapse/-/issues</a></li>\n<li><strong>Contacto</strong>: consulte la página <code>/support</code></li>\n</ol>\n<h2>Próximos pasos</h2>\n<ul>\n<li><a href=\"/docs/api/errors\">Errores y manejo de errores</a></li>\n<li><a href=\"/docs/faq/api-faq\">FAQ de la API</a></li>\n<li><a href=\"/docs/mcp/troubleshooting\">Solución de problemas de MCP</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"]}