# Fehlersuche

## Verbindung

| Symptom | Ursache | Lösung |
|---|---|---|
| `401 Unauthorized` | Token falsch, abgelaufen oder widerrufen | neuen Token anlegen und im Client eintragen |
| `429 Too Many Requests` | mehr als 60 Anfragen pro Minute | kurz warten, Schleifen im Agenten prüfen |
| Client zeigt keine Werkzeuge | Adresse ohne `/api/mcp` oder Header fehlt | mit dem [`curl`-Aufruf](https://lalabase.com/docs/de/mcp/setup/other-clients) prüfen |
| Client kann sich nicht verbinden | Client spricht nur SSE oder lokale Prozesse | einen Client mit HTTP-Transport nehmen |

## Antworten des Servers

Jede Antwort trägt ein Maschinenfeld in `_meta`: `lalabase/kind` bei einem Ergebnis, zum Beispiel
`ok` oder `empty`, und `lalabase/code` bei einem Fehler, bei einer Ablehnung dazu `lalabase/reason`.

| Meldung | Code | Ursache und Lösung |
|---|---|---|
| This token is read-only; writes are not permitted. | `read_only` | Schreibaufruf mit Nur-Lese-Token. **Nur-Lese-Zugriff** am Token abwählen. |
| Missing required arguments: project_id | `invalid_input` | Der Agent hat kein Projekt genannt. `list_projects` liefert die ID. |
| Project not found or not accessible. | `not_found` | ID falsch, Projekt außerhalb der Reichweite oder, bei den Code-Werkzeugen, kein Recht auf das Repository. |
| No ticket found for … | `empty` in `lalabase/kind` | Das Ticket gibt es nicht, oder du darfst es nicht lesen. |
| Not authorized. | `forbidden` | Ticket ist lesbar, aber dir fehlt das Recht für diese Aktion. |
| exactly one change per call … | `invalid_input` | `update_ticket` mit mehr als einer Änderung. In zwei Aufrufe teilen. |
| status is not a status of this project … | `refused` | Falscher Status-Schlüssel. Die Werte stehen in `meta.available_statuses`. |
| a user in this change cannot be assigned in this project | `refused` | Person ist dem Projekt nicht zuweisbar. |
| this project has no status field | `refused` | Das Projekt hat kein Statusfeld. |
| notification is archived … | `refused` | Eine archivierte Meldung lässt sich nicht markieren. |
| create failed: … | `refused` | Lalabase lehnt das Ticket ab, etwa wegen eines falschen Status-Schlüssels. Meldung lesen. |
| AI features are disabled for this organisation. | `refused` | Die KI wurde abgeschaltet, nachdem das Repository eingelesen war. `search_code_symbols` braucht sie. |
| idempotency_key already used with different parameters | `invalid_input` | Derselbe Schlüssel mit anderen Argumenten. Einen neuen Schlüssel nehmen. |

## Häufige Überraschungen

**Der Filter nach Status liefert null Treffer.** Status gehört zum Projekt. Lass den Agenten
`list_tickets` einmal ohne Filter aufrufen und `meta.available_statuses` lesen.

**Das Personen-Verzeichnis ist „nicht gefunden“.** Der Token erreicht nicht alle Projekte der
Organisation.

**In der Inbox fehlen Organisationen.** Der Token erreicht sie nicht. Für alle Organisationen
brauchst du **Alle Organisationen, auch künftige**.

**Code-Werkzeuge liefern nichts.** Das Repository ist nicht verbunden oder noch nicht eingelesen.
Ohne [eingeschaltete KI](https://lalabase.com/docs/de/guides/ai/enable-disable) wird es nie eingelesen. Darfst du es nicht sehen, meldet Lalabase das Projekt als nicht gefunden, auch wenn Tickets
desselben Projekts funktionieren.
