{"title":"FAQ з усунення несправностей","slug":"troubleshooting","category":"faq","summary":"Рішення поширених проблем Synapse — автентифікація, мережа, дані, розгортання.","audience":["human","llm"],"tags":["faq","troubleshooting","problems","solutions"],"difficulty":"beginner","updated":"2026-06-27","word_count":621,"read_minutes":3,"lang":"uk","translated":true,"requested_lang":"uk","content_markdown":"\n# FAQ з усунення несправностей\n\nРішення поширених проблем Synapse.\n\n## Не можу увійти\n\n### Симптоми\n\n- `POST /login` повертає 401\n- «Invalid email or password»\n\n### Рішення\n\n1. **Перевірте, що email правильний** — чутливий до регістру\n2. **Перевірте пароль** — мінімум 6 символів\n3. **Спочатку зареєструйтесь**, якщо немає облікового запису: `POST /register`\n4. **Скиньте пароль** (якщо налаштовано SMTP) через веб-інтерфейс\n\n## Я втратив Mind Key\n\n### Симптоми\n\n- Не можу доступатися до спогадів\n- Mind Key видалено/втрачено\n\n### Рішення\n\nMind Keys неможливо відновити. Вам потрібно:\n\n1. Увійти, щоб отримати JWT: `POST /login`\n2. Вивести список mind-ів: `GET /minds` (з JWT)\n3. Створити новий mind: `POST /minds`\n4. Зберегти новий Mind Key\n5. (Опціонально) Видалити старий mind: `DELETE /minds/:id`\n\n**Дані у старому mind-і втрачено**, якщо ви не зможете знайти Mind Key.\n\n## API-виклики повертають 401\n\n### Симптоми\n\n- Усі API-виклики повертають 401 Unauthorized\n- «Mind Key fehlt oder ungültig»\n\n### Рішення\n\n1. **Перевірте формат заголовка**: `Authorization: Bearer mk_...`\n2. **Перевірте, що Mind Key починається з `mk_`** (не `eyJ`, що є JWT)\n3. **Протестуйте напряму**:\n   ```bash\n   curl -H \"Authorization: Bearer mk_YOUR_KEY\" \\\n        https://synapse.schaefer.zone/memory/recall\n   ```\n4. **Mind Key може бути відкликано** — створіть новий mind\n\nДивіться [Автентифікацію](/docs/getting-started/authentication).\n\n## API-виклики повертають 404\n\n### Симптоми\n\n- 404 Not Found\n- «Route not found»\n\n### Рішення\n\n> [!CRITICAL]\n> Не вгадуйте шляхи кінцевих точок. Існують лише шляхи зі списку `GET /endpoints`.\n\n1. **Перевірте дійсні кінцеві точки**: `curl https://synapse.schaefer.zone/endpoints`\n2. **Порівняйте URL точно** — чутливий до регістру, без кінцевих слешів\n3. **Перевірте HTTP-метод** — `GET /memory` та `POST /memory` різні\n\n## API-виклики повертають 429\n\n### Симптоми\n\n- 429 Too Many Requests\n- «Rate limit exceeded»\n\n### Рішення\n\n1. **Перейдіть на автентифікацію через заголовок** (без обмеження):\n   ```bash\n   # Не робіть\n   curl \".../memory/recall?key=mk_...\"\n   \n   # Робіть\n   curl -H \"Authorization: Bearer mk_...\" .../memory/recall\n   ```\n2. **Зачекайте `Retry-After` секунд**, якщо доводиться використовувати `?key=`\n\nДивіться [Обмеження частоти](/docs/api/rate-limits).\n\n## Пошук спогадів не повертає результатів\n\n### Симптоми\n\n- `GET /memory/search?q=...` повертає порожньо\n- Знаєте, що спогади існують\n\n### Рішення\n\n1. **Перевірте, що спогади існують**: `GET /memory/recall`\n2. **Перевірте синтаксис пошуку** — у FTS5 специфічний синтаксис\n3. **Спробуйте простіший запит** — `?q=docker` замість `?q=docker+swarm+deployment`\n4. **Використовуйте семантичний пошук** для концептуальних запитів: `GET /memory/semantic-search?q=...`\n\nДивіться [Пошук FTS5](/docs/concepts/fts5-search).\n\n## Спогади не зберігаються\n\n### Симптоми\n\n- POST /memory повертає успіх\n- GET /memory/recall не показує їх\n\n### Рішення\n\n1. **Перевірте, що той самий Mind Key** — різні ключі = різні mind-и\n2. **Перевірте відповідь** — POST повертає `{ \"id\": \"mem_...\", \"status\": \"stored\" }`\n3. **Спробуйте GET /memory** (JSON-список) замість /memory/recall (текст)\n4. **Перевірте фільтр** — `?category=` або `?tag=` можуть ховати їх\n\n## Інструменти не з'являються в Claude Desktop\n\n### Симптоми\n\n- Claude Desktop показує 0 інструментів\n- Немає іконки 🔌\n\n### Рішення\n\n1. **Повністю перезапустіть Claude Desktop** (Cmd+Q)\n2. **Перевірте, що файл конфігурації є коректним JSON**\n3. **Перевірте Node.js 18+** встановлено\n4. **Запустіть MCP вручну**: `npx -y synapse-mcp-api@latest`\n5. **Перевірте логи**: `~/Library/Logs/Claude/mcp.log`\n\nДивіться [Усунення несправностей MCP](/docs/mcp/troubleshooting).\n\n## Synapse офлайн\n\n### Симптоми\n\n- Не можна досягти synapse.schaefer.zone\n- curl тайм-аутиться\n\n### Рішення\n\n1. **Перевірте інтернет** — спробуйте інший сайт\n2. **Перевірте стан Synapse**: `curl https://synapse.schaefer.zone/health`\n3. **Зачекайте** — можливо, тимчасовий збій або розгортання\n4. **Перевірте сторінку статусу** (якщо є)\n\nДля self-hosted: перевірте статус Docker-контейнера, підключення до БД.\n\n## Помилки бази даних\n\n### Симптоми\n\n- 500 Internal Server Error\n- «Database connection failed»\n\n### Рішення\n\nДля self-hosted:\n\n1. **Перевірте, що PostgreSQL працює**: `docker ps | grep postgres`\n2. **Перевірте DATABASE_URL** у середовищі\n3. **Перевірте міграції**: `npm run migrate:check`\n4. **Перевірте місце на диску**: `df -h`\n\nДля хостингу: зверніться до підтримки.\n\n## Webhook не спрацьовує\n\n### Симптоми\n\n- Зареєстровано webhook, але не отримуєте зворотних викликів\n- Немає POST на ваш URL\n\n### Рішення\n\n1. **Перевірте, що URL доступний**: `curl -X POST your-url -d '{}'`\n2. **Перевірте фільтр подій** — `memory.*` ловить усі події пам'яті\n3. **Протестуйте webhook**: `POST /webhooks/:id/test`\n4. **Перевірте, що webhook увімкнено**: `GET /webhooks/:id`\n5. **Перевірте SSL** — Synapse потребує дійсний HTTPS для URL webhook-ів\n\nДивіться [Webhooks API](/docs/api/webhooks).\n\n## Cron-завдання не запускається\n\n### Симптоми\n\n- Створено cron-завдання, але воно не спрацьовує\n- `next_run` не оновлюється\n\n### Рішення\n\n1. **Перевірте синтаксис розкладу** — має бути коректний 5-польовий cron АБО ціле число секунд\n2. **Перевірте, що кінцева точка дозволена** — має бути http(s), без приватних IP\n3. **Перевірте, що завдання увімкнено**: `GET /cron`\n4. **Зачекайте на наступний запланований час** — cron не миттєвий\n\nДивіться [Cron та планувальник](/docs/api/cron).\n\n## Потрібна додаткова допомога?\n\n1. **Перевірте наявну документацію**: <https://synapse.schaefer.zone/docs>\n2. **Шукайте в документах**: `GET /docs/search?q=your+question`\n3. **Відкрийте issue**: <https://gitlab.com/schaefer-services/synapse/-/issues>\n4. **Контакт**: дивіться сторінку `/support`\n\n## Наступні кроки\n\n- [Помилки та обробка помилок](/docs/api/errors)\n- [API FAQ](/docs/faq/api-faq)\n- [Усунення несправностей MCP](/docs/mcp/troubleshooting)\n","content_html":"<h1>FAQ з усунення несправностей</h1>\n<p>Рішення поширених проблем Synapse.</p>\n<h2>Не можу увійти</h2>\n<h3>Симптоми</h3>\n<ul>\n<li><code>POST /login</code> повертає 401</li>\n<li>«Invalid email or password»</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перевірте, що email правильний</strong> — чутливий до регістру</li>\n<li><strong>Перевірте пароль</strong> — мінімум 6 символів</li>\n<li><strong>Спочатку зареєструйтесь</strong>, якщо немає облікового запису: <code>POST /register</code></li>\n<li><strong>Скиньте пароль</strong> (якщо налаштовано SMTP) через веб-інтерфейс</li>\n</ol>\n<h2>Я втратив Mind Key</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>Не можу доступатися до спогадів</li>\n<li>Mind Key видалено/втрачено</li>\n</ul>\n<h3>Рішення</h3>\n<p>Mind Keys неможливо відновити. Вам потрібно:</p>\n<ol>\n<li>Увійти, щоб отримати JWT: <code>POST /login</code></li>\n<li>Вивести список mind-ів: <code>GET /minds</code> (з JWT)</li>\n<li>Створити новий mind: <code>POST /minds</code></li>\n<li>Зберегти новий Mind Key</li>\n<li>(Опціонально) Видалити старий mind: <code>DELETE /minds/:id</code></li>\n</ol>\n<p><strong>Дані у старому mind-і втрачено</strong>, якщо ви не зможете знайти Mind Key.</p>\n<h2>API-виклики повертають 401</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>Усі API-виклики повертають 401 Unauthorized</li>\n<li>«Mind Key fehlt oder ungültig»</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перевірте формат заголовка</strong>: <code>Authorization: Bearer mk_...</code></li>\n<li><strong>Перевірте, що Mind Key починається з <code>mk_</code></strong> (не <code>eyJ</code>, що є JWT)</li>\n<li><strong>Протестуйте напряму</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>Mind Key може бути відкликано</strong> — створіть новий mind</li>\n</ol>\n<p>Дивіться <a href=\"/docs/getting-started/authentication\">Автентифікацію</a>.</p>\n<h2>API-виклики повертають 404</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>404 Not Found</li>\n<li>«Route not found»</li>\n</ul>\n<h3>Рішення</h3>\n<div class=\"callout callout-critical\">Не вгадуйте шляхи кінцевих точок. Існують лише шляхи зі списку `GET /endpoints`.</div><ol>\n<li><strong>Перевірте дійсні кінцеві точки</strong>: <code>curl https://synapse.schaefer.zone/endpoints</code></li>\n<li><strong>Порівняйте URL точно</strong> — чутливий до регістру, без кінцевих слешів</li>\n<li><strong>Перевірте HTTP-метод</strong> — <code>GET /memory</code> та <code>POST /memory</code> різні</li>\n</ol>\n<h2>API-виклики повертають 429</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>429 Too Many Requests</li>\n<li>«Rate limit exceeded»</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перейдіть на автентифікацію через заголовок</strong> (без обмеження):<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Не робіть</span>\ncurl <span class=\"hljs-string\">&quot;.../memory/recall?key=mk_...&quot;</span>\n\n<span class=\"hljs-comment\"># Робіть</span>\ncurl -H <span class=\"hljs-string\">&quot;Authorization: Bearer mk_...&quot;</span> .../memory/recall</code></pre></li>\n<li><strong>Зачекайте <code>Retry-After</code> секунд</strong>, якщо доводиться використовувати <code>?key=</code></li>\n</ol>\n<p>Дивіться <a href=\"/docs/api/rate-limits\">Обмеження частоти</a>.</p>\n<h2>Пошук спогадів не повертає результатів</h2>\n<h3>Симптоми</h3>\n<ul>\n<li><code>GET /memory/search?q=...</code> повертає порожньо</li>\n<li>Знаєте, що спогади існують</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перевірте, що спогади існують</strong>: <code>GET /memory/recall</code></li>\n<li><strong>Перевірте синтаксис пошуку</strong> — у FTS5 специфічний синтаксис</li>\n<li><strong>Спробуйте простіший запит</strong> — <code>?q=docker</code> замість <code>?q=docker+swarm+deployment</code></li>\n<li><strong>Використовуйте семантичний пошук</strong> для концептуальних запитів: <code>GET /memory/semantic-search?q=...</code></li>\n</ol>\n<p>Дивіться <a href=\"/docs/concepts/fts5-search\">Пошук FTS5</a>.</p>\n<h2>Спогади не зберігаються</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>POST /memory повертає успіх</li>\n<li>GET /memory/recall не показує їх</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перевірте, що той самий Mind Key</strong> — різні ключі = різні mind-и</li>\n<li><strong>Перевірте відповідь</strong> — POST повертає <code>{ &quot;id&quot;: &quot;mem_...&quot;, &quot;status&quot;: &quot;stored&quot; }</code></li>\n<li><strong>Спробуйте GET /memory</strong> (JSON-список) замість /memory/recall (текст)</li>\n<li><strong>Перевірте фільтр</strong> — <code>?category=</code> або <code>?tag=</code> можуть ховати їх</li>\n</ol>\n<h2>Інструменти не з&#39;являються в Claude Desktop</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>Claude Desktop показує 0 інструментів</li>\n<li>Немає іконки 🔌</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Повністю перезапустіть Claude Desktop</strong> (Cmd+Q)</li>\n<li><strong>Перевірте, що файл конфігурації є коректним JSON</strong></li>\n<li><strong>Перевірте Node.js 18+</strong> встановлено</li>\n<li><strong>Запустіть MCP вручну</strong>: <code>npx -y synapse-mcp-api@latest</code></li>\n<li><strong>Перевірте логи</strong>: <code>~/Library/Logs/Claude/mcp.log</code></li>\n</ol>\n<p>Дивіться <a href=\"/docs/mcp/troubleshooting\">Усунення несправностей MCP</a>.</p>\n<h2>Synapse офлайн</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>Не можна досягти synapse.schaefer.zone</li>\n<li>curl тайм-аутиться</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перевірте інтернет</strong> — спробуйте інший сайт</li>\n<li><strong>Перевірте стан Synapse</strong>: <code>curl https://synapse.schaefer.zone/health</code></li>\n<li><strong>Зачекайте</strong> — можливо, тимчасовий збій або розгортання</li>\n<li><strong>Перевірте сторінку статусу</strong> (якщо є)</li>\n</ol>\n<p>Для self-hosted: перевірте статус Docker-контейнера, підключення до БД.</p>\n<h2>Помилки бази даних</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>500 Internal Server Error</li>\n<li>«Database connection failed»</li>\n</ul>\n<h3>Рішення</h3>\n<p>Для self-hosted:</p>\n<ol>\n<li><strong>Перевірте, що PostgreSQL працює</strong>: <code>docker ps | grep postgres</code></li>\n<li><strong>Перевірте DATABASE_URL</strong> у середовищі</li>\n<li><strong>Перевірте міграції</strong>: <code>npm run migrate:check</code></li>\n<li><strong>Перевірте місце на диску</strong>: <code>df -h</code></li>\n</ol>\n<p>Для хостингу: зверніться до підтримки.</p>\n<h2>Webhook не спрацьовує</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>Зареєстровано webhook, але не отримуєте зворотних викликів</li>\n<li>Немає POST на ваш URL</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перевірте, що URL доступний</strong>: <code>curl -X POST your-url -d &#39;{}&#39;</code></li>\n<li><strong>Перевірте фільтр подій</strong> — <code>memory.*</code> ловить усі події пам&#39;яті</li>\n<li><strong>Протестуйте webhook</strong>: <code>POST /webhooks/:id/test</code></li>\n<li><strong>Перевірте, що webhook увімкнено</strong>: <code>GET /webhooks/:id</code></li>\n<li><strong>Перевірте SSL</strong> — Synapse потребує дійсний HTTPS для URL webhook-ів</li>\n</ol>\n<p>Дивіться <a href=\"/docs/api/webhooks\">Webhooks API</a>.</p>\n<h2>Cron-завдання не запускається</h2>\n<h3>Симптоми</h3>\n<ul>\n<li>Створено cron-завдання, але воно не спрацьовує</li>\n<li><code>next_run</code> не оновлюється</li>\n</ul>\n<h3>Рішення</h3>\n<ol>\n<li><strong>Перевірте синтаксис розкладу</strong> — має бути коректний 5-польовий cron АБО ціле число секунд</li>\n<li><strong>Перевірте, що кінцева точка дозволена</strong> — має бути http(s), без приватних IP</li>\n<li><strong>Перевірте, що завдання увімкнено</strong>: <code>GET /cron</code></li>\n<li><strong>Зачекайте на наступний запланований час</strong> — cron не миттєвий</li>\n</ol>\n<p>Дивіться <a href=\"/docs/api/cron\">Cron та планувальник</a>.</p>\n<h2>Потрібна додаткова допомога?</h2>\n<ol>\n<li><strong>Перевірте наявну документацію</strong>: <a href=\"https://synapse.schaefer.zone/docs\">https://synapse.schaefer.zone/docs</a></li>\n<li><strong>Шукайте в документах</strong>: <code>GET /docs/search?q=your+question</code></li>\n<li><strong>Відкрийте issue</strong>: <a href=\"https://gitlab.com/schaefer-services/synapse/-/issues\">https://gitlab.com/schaefer-services/synapse/-/issues</a></li>\n<li><strong>Контакт</strong>: дивіться сторінку <code>/support</code></li>\n</ol>\n<h2>Наступні кроки</h2>\n<ul>\n<li><a href=\"/docs/api/errors\">Помилки та обробка помилок</a></li>\n<li><a href=\"/docs/faq/api-faq\">API FAQ</a></li>\n<li><a href=\"/docs/mcp/troubleshooting\">Усунення несправностей 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"]}