Build failed
"Cannot find module '...'"
Przyczyna: Brakuje zależności w package.json. Moduł jest w devDependencies, ale npm ci --production pomija je.
Fix: Przenieś brakujące moduły z devDependencies do dependencies:
Lub jeśli chcesz instalować też devDependencies w buildzie, zmień build.install w saplo.yaml:
"pip install failed: No matching distribution found"
Przyczyna: Paczka Pythona wymaga innej wersji Pythona niż zdefiniowana w runtime.python.
Fix: Sprawdź wymagania pakietu i dostosuj wersję w saplo.yaml:
Lub zaktualizuj requirements.txt do kompatybilnej wersji paczki.
"npm run build: exit code 1" - ogólny błąd buildu
Przyczyna: Błąd w kodzie aplikacji wykryty podczas buildu (TypeScript error, ESLint, test).
Fix: Uruchom build lokalnie, żeby zobaczyć dokładny błąd:
Napraw błędy i ponów saplo deploy.
"Out of memory during build"
Przyczyna: Build Node.js (np. webpack) wymaga więcej RAM niż dostępne w planie.
Fix: Zwiększ RAM przez add-on w panelu lub ogranicz zużycie pamięci przez Node:
Wartości dla różnych planów:
- Box S (512 MB) - max 384 MB dla Node
- Box M (2 GB) - max 1536 MB
- Box L (6 GB) - max 4096 MB
"Django: No module named '...'"
Przyczyna: Moduł nie jest w requirements.txt lub jest źle zainstalowany.
Fix: Wygeneruj aktualne requirements lokalnie:
Sprawdź, że wszystkie zależności produkcyjne są w pliku, i ponów deploy.
Healthcheck timeout
Aplikacja nie odpowiada na endpoint zdefiniowany w start.healthcheck w ciągu 60 sekund. Zacznij od sprawdzenia logów:
Zmiana endpointu healthcheck
Zmień endpoint na prostszy lub wyłącz healthcheck tymczasowo:
healthcheck: ~) nie jest zalecane - Saplo nie wykryje wtedy nieudanego startu aplikacji.Dodanie endpointu /api/health
Next.js - plik app/api/health/route.ts:
Django - urls.py:
Aplikacja startuje wolno (baza danych, heavy init)
Przyczyna: Inicjalizacja (połączenie do bazy, ładowanie modeli ML, kompilacja JIT) trwa dłużej niż 60 s.
Zwiększ timeout healthchecka przez support (domyślnie 60 s, max 300 s). Lub przyspiesz start aplikacji - nie ładuj dużych zasobów synchronicznie przy starcie.
Zmienne środowiskowe
Zmienna @secret nie działa - deploy zwraca błąd
Przyczyna: Zmienna jest zdefiniowana jako @secret w saplo.yaml, ale jej wartość nie została ustawiona przez saplo env set.
Zmienne środowiskowe są puste w aplikacji
Przyczyna 1: W React/Vite - zmienne build-time muszą mieć prefix VITE_ (Vite) lub REACT_APP_ (CRA) i są dostępne tylko podczas buildu.
Przyczyna 2: Zmienna została dodana po ostatnim deployu - efekty wejdą w życie dopiero po ponownym deployu.
Certyfikat SSL / domena
SSL w stanie "pending" - certyfikat się nie generuje
Przyczyna: Rekord DNS nie zdążył się spropagować lub jest błędny.
Jeśli rekord jest błędny:
- Dodaj rekord A
example.pl -> 116.202.174.87u swojego dostawcy DNS. - Poczekaj 5-60 min na propagację.
- SSL zostanie wydany automatycznie po propagacji.
Błąd "NET::ERR_CERT_AUTHORITY_INVALID" w przeglądarce
Przyczyna: Let's Encrypt nie mógł zweryfikować domeny (rate limit, błąd ACME challenge).
Jeśli DNS wskazuje poprawnie, poczekaj do 10 minut (automatyczny retry ACME challenge). Jeśli problem trwa, skontaktuj się z supportem.
Autoryzacja i tokeny API
Błąd 401 Unauthorized / "Token revoked"
Przyczyna: Token API został unieważniony lub wygasł.
Wygeneruj nowy token: panel - Ustawienia - API Tokens - Nowy token. Następnie zaktualizuj go w CLI:
W CI/CD (GitHub Actions) zaktualizuj secret SAPLO_TOKEN w ustawieniach repozytorium.
Inne problemy
Aplikacja nie startuje - konflikt portów
Przyczyna: Port zdefiniowany w start.port jest już zajęty przez inny proces.
Zmień port w saplo.yaml i komendzie startowej - muszą być zgodne:
Upload bardzo wolny przy saplo deploy
Przyczyna: node_modules lub inne duże katalogi nie są wykluczone z paczki deployowej.
Utwórz plik .saploignore w katalogu projektu:
Sprawdź rozmiar paczki przed uploadem:
Django: "CSRF verification failed"
Przyczyna: Django CSRF middleware blokuje requesty przez proxy NPM.
Dodaj do settings.py:
Kontakt z supportem
Jeśli problem nadal występuje, skontaktuj się z nami. Do zgłoszenia dołącz app_id, deployment_id (z saplo logs --list), logi deploymentu i opis kroków reprodukcji.
- Email: support@saplo.pl
- Panel: zakładka "Support" - Nowy ticket
- Priority support (SLA 1h): add-on dostępny w panelu