Problemy
Plugin się nie uruchamia, 401, 403, błędy CORS, SSE się rozłącza.
Sprawdź w konsoli, co dokładnie napisał przy starcie.
| Komunikat | Przyczyna |
|---|---|
| Brak GrzybcioRynku | Most ma depend: GrzybcioRynek — bez niego nie wstanie w ogóle |
| Niezgodna wersja rynku | Rynek starszy niż required-market-version (domyślnie 1.0.3) |
| Niezgodny kontrakt API | Rynek udostępnia inną wersję MarketAPI niż required-api-contract |
UnsupportedClassVersionError | Java starsza niż 25 |
Unsupported API version | Paper starszy niż 1.26.2 |
Nie obniżaj required-market-version ani required-api-contract, żeby „przeszło".
Te wartości istnieją po to, żeby most nie próbował czytać danych, których nie rozumie.
Zaktualizuj GrzybcioRynek zamiast obchodzić sprawdzenie.
Klucz nie dotarł albo nie został rozpoznany.
- Brak nagłówka. Musi być
X-API-Key: <klucz>alboAuthorization: Bearer <klucz>. - Klucz nie zgadza się z konfiguracją. Sprawdź
/grzybciorynekweb keyi porównaj. - Nie przeładowałeś po zmianie.
/grzybciorynekweb reload. - Spacja albo znak nowej linii w kluczu. Częste przy kopiowaniu z pliku — sprawdź cudzysłowy w YAML-u.
Szybki test lokalny:
curl -i -H "X-API-Key: twoj-klucz" http://127.0.0.1:8765/api/v1/categoriesKlucz jest poprawny, ale nie ma uprawnienia do tego endpointu.
Sprawdź listę permissions przy swoim kluczu. Endpointy i wymagane uprawnienia
są wypisane w Endpointach.
Jeśli w odpowiedzi jest kod WRITE_NOT_ENABLED, to nie błąd konfiguracji — endpointy
zapisu (POST, DELETE) w wersji 1 zawsze odrzucają. Most jest tylko do odczytu.
Komunikat wygląda mniej więcej tak:
Access to fetch at 'http://...:8765/api/v1/listings' from origin 'https://twojadomena.pl'
has been blocked by CORS policySprawdź allowed-origins w config.yml:
| Pułapka | Poprawnie |
|---|---|
| Ukośnik na końcu | https://example.com, nie https://example.com/ |
| Zły schemat | https:// ≠ http:// |
| Subdomena | www.example.com i example.com to dwa różne wpisy |
| Port | http://localhost:3000, nie http://localhost |
Po poprawce: /grzybciorynekweb reload.
Na stronie w Next.js CORS zwykle nie powinien się pojawić
Jeśli strona jest zbudowana poprawnie, przeglądarka odpytuje serwer Next.js
(same-origin), a ten dopiero rozmawia z mostem. Błąd CORS oznacza, że coś odpytuje
most prosto z przeglądarki — najczęściej źle ustawiony MARKET_API_URL.
Przekroczony limit zapytań.
| Limit | Domyślnie | Liczony per |
|---|---|---|
| Bez klucza | 120 / min | IP |
| Z kluczem | 300 / min | Nazwa klucza |
W nagłówku Retry-After jest czas, po którym można spróbować ponownie.
Najczęstsze przyczyny na produkcji:
- Wyłączone SSE + krótki polling. Jeśli
NEXT_PUBLIC_MARKET_POLL_MSjest bardzo niskie, a odwiedzających sporo, limit wyczerpuje się szybko. Włącz SSE albo wydłuż interwał. - Kilka usług na jednym kluczu. Wydaj osobne klucze — limity liczone są per nazwa.
- Za niski limit. Podnieś
authenticated-requests-per-minute.
-
Proxy buforuje odpowiedź. Najczęstszy powód. W nginxie:
proxy_buffering off; proxy_cache off; proxy_read_timeout 3600s; -
Za rzadki heartbeat. Jeśli proxy zamyka połączenia po 10 sekundach ciszy, a heartbeat jest co 15 — zmniejsz
api.sse.heartbeat-seconds. -
Przekroczony
max-connections. Domyślnie 64. Jeśli każdy odwiedzający otwiera własny strumień, limit kończy się szybko. Lepiej, żeby jeden strumień utrzymywał serwer strony. -
Hosting serverless. Vercel i podobne ucinają długie połączenia. Tam trzeba wyłączyć SSE i przejść na polling.
To zwykle cache, nie błąd.
Domyślne TTL: oferty 2 s, statystyki 10 s, profile 30 s, wykresy cen 30 s. Jeśli
potrzebujesz świeższych danych, skróć wartości w sekcji cache — ale pamiętaj, że każde
skrócenie to więcej pracy dla serwera gry.
Jednorazowe wyczyszczenie:
/grzybciorynekweb cache clearJeśli dane są stare mimo wyczyszczenia cache, problem jest po stronie rynku albo strony, nie mostu.
Sprawdź pisownię węzła uprawnień. W plugin.yml jest zapisany jako:
grybciorynekweb.adminBez „z" po „g". Intuicyjne grzybciorynekweb.admin nie zadziała.
Inny proces już go używa. Sprawdź:
netstat -ano | findstr :8765Zmień port w konfiguracji:
api:
port: 8790Pamiętaj, żeby zaktualizować MARKET_API_URL po stronie strony.
Zbieranie informacji do zgłoszenia
Włącz tymczasowo logowanie zapytań:
logging:
requests: true
errors: trueOdtwórz problem.
Skopiuj fragment logs/latest.log oraz wynik /grzybciorynekweb status.
Wyłącz requests: true z powrotem — przy normalnym ruchu zalewa log.
Zgłoszenia na GitHubie. Konfigurację dołączaj z usuniętymi kluczami API.