Najpierw ogólny obraz z katalogu instalacji:
./draften status # version, health of both web colours and the workers, HTTPS, database dumps
Potem bardziej szczegółowo:
docker compose ps # are the services up, is the database healthy?
docker compose logs --tail 50 worker # the worker's last entries
docker compose run --rm worker node diag.mjs mailbox@company.com
Ostatnie polecenie robi to samo co Przetestuj połączenie w interfejsie: bierze dostęp zapisany dla skrzynki, pozyskuje token, wypisuje jego uprawnienia (nigdy sam token) i czyta skrzynkę odbiorczą.
Częste błędy
| Objaw | Przyczyna | Co zrobić |
|---|---|---|
set DB_PASSWORD in .env przy starcie | brak haseł do bazy danych | uzupełnij .env |
mailbox … has no access yet | skrzynka nie ma rejestracji ani podłączonego konta | strona skrzynki → Dostęp do poczty |
Graph … 401 … invalid_client | błędny albo wygasły client secret | nowy sekret przy rejestracji, potem test połączenia |
Graph … 403 … AppOnly AccessPolicy | zasady dostępu aplikacji jeszcze nie zaczęły działać albo skrzynki nie ma w grupie | poczekaj (nawet kilka godzin), powtórz test; dodaj skrzynkę do grupy |
Graph … 403 … ErrorAccessDenied | brak zgody administratora | w Entra przy rejestracji Grant admin consent |
Category not added … MailboxSettings | brak uprawnienia MailboxSettings.ReadWrite; etykieta działa, tylko bez koloru | dodaj uprawnienie i zgodę |
No active assistant in the database | asystent jest wyłączony albo nie skonfigurowano danych początkowych | włącz asystenta; sprawdź dziennik startu |
| asystent jest pomijany („no prompts yet”) | asystent nie ma napisanych wytycznych | dokończ kreatora albo napisz wytyczne ręcznie |
Draft without signature / links outside the allowed domains | szkic nie przeszedł kontroli | przyjrzyj się wiadomości – to może być próba podszycia się |
Limit reached | limit dzienny albo na nadawcę | podnieś go tylko wtedy, gdy zalew poczty jest uzasadniony |
Model refused to answer | filtr bezpieczeństwa modelu | obsłuż wiadomość ręcznie |
Model exhausted max_iterations | model zapętlił się w narzędziach | ponowiono dwa razy; gdy to się powtarza, dostrój zadanie w wytycznych |
ECONNREFUSED … 3306 | baza danych nie działa albo jeszcze nie wstała | docker compose ps, docker compose logs db |
| pasek „Licencja wygasła” albo „Instalacja nie ma licencji”, asystenci nic nie piszą | brak licencji albo wygasła | prześlij ważną licencję – zobacz Licencja |
| aktualizacja zakończyła się błędem | nowa wersja nie stała się sprawna; poprzednia dalej obsługuje ruch | błąd w Historii zleceń albo w wyniku ./draften update; ./draften status |
Gdy dziennik tego nie pokazuje
- Interfejs: Ustawienia asystenta → Aktywność (sprawdzania poczty, zlecenia, zdarzenia) i strona Utrzymanie (workery, kolejka, błędy z ostatnich 24 godzin).
- Po trzech nieudanych próbach wiadomość dostaje status nieudana; ostatni błąd jest w jej szczegółach.
Jednorazowe przejście ręcznie
docker compose run --rm worker node worker.mjs --dry-run
Bierze raz każdego aktywnego asystenta i wymusza tryb próbny – do poczty nic nie zostaje zapisane. Przydaje się do sprawdzenia, czy wszystko działa.
Gdy potrzebujesz naszej pomocy
./draften diagnose
zapisuje plik diagnose-<time>.tar.gz ze stanem instalacji, wersjami, konfiguracją bez sekretów i końcówką dzienników. Wyślij nam go.
Zanim wyślesz plik, zajrzyj do środka: dzienniki mogą zawierać adresy i tematy przetwarzanej poczty. Nic nie opuszcza serwera samo.