Temat

Błędy API — co oznacza każdy kod i jak go naprawić

FastOG zwraca czytelne maszynowo kody błędów, gdy żądanie się nie powiedzie — renderowanie podpisanego obrazu OG lub wywołanie jednej z powierzchni administracyjnych dostępnych w produkcie. Każda odpowiedź z błędem zawiera:

  • error — starszy krótki token. Nadal obecny przy każdym błędzie, aby starszy klient działał dalej.
  • code — ten sam stabilny, udokumentowany kod błędu (tabela poniżej), pod nazwą używaną przez publiczne API.
  • message — jednozdaniowy opis tego, co poszło nie tak.
  • hint — krótki, prosty opis tego, co poszło nie tak i jak to naprawić.
  • docs_url — link do tej strony, zakotwiczony w sekcji dla danego kodu.
  • request_id — wiąże ten błąd HTTP z wierszem w tabeli Render Logs w dashboardzie (zwracany również w nagłówku odpowiedzi X-Request-ID). Powierzchnia, która nie ma nic do powiązania, odpowiada null, ale klucz jest zawsze obecny.

Powierzchnie dostępne w produkcie — panel administracyjny Shopify, WooCommerce Studio, mostek Wix i demo — odpowiadają tym samym envelope dla poniższych kodów, więc błąd oznacza to samo, gdziekolwiek go napotkasz. Powierzchnia modułu może zachować status HTTP, który zawsze zwracała dla danego kodu (na przykład render_failed odpowiada 503 przy eksporcie okładki i 502 w publicznym API); kod, komunikat, podpowiedź i link do dokumentacji się nie zmieniają.

Odczyt odpowiedzi z błędem

json
{
  "error": "invalid_signature",
  "code": "invalid_signature",
  "message": "The signature does not match.",
  "hint": "The signature did not match. Re-sign with your HMAC secret after every param change.",
  "request_id": "5f2a9c1e-..."
}

Jeśli otrzymasz odpowiedź, której nie rozumiesz, najszybsza droga to:

  1. Zanotuj code.
  2. Sprawdź swój builder URL — większość błędów to błędy podpisywania, a nie problemy z kontem.
  3. Dopasuj kod poniżej, aby znaleźć dokładną przyczynę i poprawkę.
  4. W dashboardzie otwórz Render Logs i filtruj po tym samym error_code — każdy wiersz pokazuje żądane parametry, więc możesz odtworzyć żądanie (i potwierdzić, że request_id się zgadza).

Podpisywanie i uwierzytelnianie

missing_signature

W Twoim żądaniu brakuje parametrów zapytania key i/lub s (sygnatura).

Poprawka: upewnij się, że Twój URL zawiera zarówno key=<api-key>, jak i s=<hmac-signature>. Użyj SDK lub przejdź przez przewodnik /docs/hmac-signature-guide, aby go zbudować.

invalid_signature

Wartość s nie zgadzała się z tym, co Twój sekret HMAC generuje dla tego URL-a.

Poprawka: sygnatura obejmuje każdy parametr zapytania oprócz s, z posortowanymi kluczami. Zmiana dowolnego parametru — w tym zmiana kolejności, różnice w kodowaniu URL lub dodanie białych znaków — unieważnia sygnaturę. Podpisuj ponownie po każdej zmianie. Upewnij się, że Twój sekret to ten sam, który został wyświetlony przy tworzeniu klucza API.

invalid_signature_format

Wartość s nie jest 64-znakowym ciągiem hex.

Poprawka: sygnatura musi być surowym hex SHA-256 (małe litery a-f0-9). Jeśli kodujesz wynik w base64 lub go obcinasz, użyj zwykłego hex.

expired_timestamp

Podany przez Ciebie znacznik czasu t jest starszy niż 5 minut.

Poprawka: generuj znacznik czasu od nowa za każdym razem, gdy budujesz URL. Ten kod dotyczy starszego przepływu z podpisanym URL-em; obecny przepływ HMAC v2 nie ma znacznika czasu.

invalid_api_key

Przekazany przez Ciebie key nie istnieje.

Poprawka: skopiuj pełny klucz API z dashboardu — to publiczny identyfikator zaczynający się od sk_. Jest publiczny i bezpieczny w URL-ach; to sekret (nigdy w URL-ach) dowodzi posiadania.

missing_hmac_secret

Klucz API nie ma skonfigurowanego sekretu HMAC.

Poprawka: utwórz nowy klucz API w dashboardzie — sekret HMAC jest generowany i wyświetlany jednorazowo przy tworzeniu.


Parametr / dane wejściowe

invalid_image_url

Właściwość zawierająca URL (image, brand_logo, logo, avatar, background_image, ...) nie jest publicznym adresem URL http(s).

Poprawka: przekaż publicznie dostępny adres URL https://.... Localhost, prywatne adresy IP i same ścieżki są odrzucane, aby zapobiec server-side request forgery.


Subskrypcja

subscription_required (402)

Żądanie trafiło do Dynamic API, ale Twoje konto nie ma aktywnego planu. Dostęp do API jest wyłącznie w ramach subskrypcji: plan jest warunkiem dostępu i oferuje ten sam zakres pokrycia i drabinkę możliwości, które sprzedają aplikacje FastOG. Same rendery nie są rozliczane — nie ma miesięcznego limitu renderów ani opłat za przekroczenie.

Poprawka: wybierz plan Dynamic API w panelu (dashboard) i utwórz klucz API. Odpowiedź zawiera top_up_url wskazujący na stronę z planami.


Usługa renderowania

store_blocked (403)

Renderowanie dla sklepu powiązanego z tym kluczem zostało wstrzymane przez FastOG (na przykład z powodu nadużyć lub niekontrolowanego użycia). Okładki już zapisane w pamięci podręcznej na edge mogą być nadal serwowane, dopóki nie wygasną. Skontaktuj się z pomocą techniczną, aby to rozwiązać; nic, co możesz zmienić w żądaniu, tego nie naprawi.

render_unreachable

Nie udało się połączyć z usługą renderowania (krótkie okno restartu).

Poprawka: ponów próbę za kilka sekund. Render nie został policzony dla tej próby.

render_failed

Usługa renderowania zwróciła błąd dla Twojego żądania.

Poprawka: zweryfikuj właściwości szablonu (template props) — zbyt długie/nieprawidłowo sformatowane wartości, nieobsługiwane pola lub nieosiągalny obraz źródłowy. Odpowiedź zawiera bazowy status. Render nie został policzony.


Powierzchnie administracyjne sklepu

Te kody odpowiadają z panelu administracyjnego Shopify i z WooCommerce Studio — osadzonych edytorów, w których pracuje sprzedawca, a nie z podpisanego API. Kilka z nich jest współdzielonych z publicznym API (invalid_image_url, render_failed, invalid_signature); te zachowują wpis udokumentowany powyżej.

Kod HTTP Co to oznacza i co zrobić
invalid_shop 422 Nie udało się zidentyfikować sklepu Shopify. Przeładuj aplikację FastOG z panelu administracyjnego Shopify, aby osadzone żądanie ponownie zawierało sklep, a następnie spróbuj ponownie.
invalid_shop_or_page 422 Sklep lub typ strony jest nieznany. Otwórz aplikację FastOG z panelu administracyjnego Shopify i wybierz typ strony okładki w edytorze.
invalid_store 422 Nie udało się zidentyfikować sklepu WooCommerce. Otwórz ponownie Studio z panelu administracyjnego WordPress, aby token sklepu został ponownie przekazany, a następnie spróbuj ponownie.
invalid_store_or_page 422 Sklep lub typ strony jest nieznany. Otwórz ponownie Studio z panelu administracyjnego WordPress i wybierz typ strony okładki oferowany przez edytor.
missing_api_key 422 Sklep nie ma klucza podpisującego. Dokończ instalację wtyczki z panelu administracyjnego WordPress, aby FastOG mógł wydać sklepowi jego klucz podpisujący.
store_ownership_unverified 403 Nie udało się zweryfikować witryny WordPress. Musi być osiągalna przez publiczny HTTPS z włączonym REST API.
community_is_free 422 Plan Community jest darmowy. To domyślny darmowy plan i nie można go kupić; wybierz płatny plan, aby dokonać ulepszenia.
not_installed 404 FastOG nie jest zainstalowany dla tego sklepu. Zainstaluj aplikację FastOG ze sklepu Shopify App Store dla tego sklepu, a następnie otwórz ją ponownie.
oauth_required 409 Sklep musi ponownie autoryzować FastOG. Uruchom ponownie instalację OAuth FastOG z panelu administracyjnego Shopify; zapisane uprawnienie zostało cofnięte lub zmieniły się jego zakresy.
reconnect_required 409 Połączenie z Shopify wymaga ponownego ustanowienia. Użyj przycisku Reconnect w aplikacji FastOG, aby wydano nowy token dostępu.
token_rejected 409 Shopify wydał token dostępu, a następnie go odrzucił. Ponów połączenie raz; jeśli Shopify nadal go odrzuca, zainstaluj aplikację ponownie.
unauthorized 401 Żądanie nie zawiera prawidłowej sesji dla tego interfejsu. Przeładuj aplikację FastOG z panelu administracyjnego platformy, aby dołączono nowy token sesji, a następnie spróbuj ponownie.
shop_not_found 404 Sklep nie istnieje już w FastOG. Zainstaluj ponownie FastOG z panelu administracyjnego Shopify, aby odtworzyć rekord sklepu.
invalid_product 422 Odwołanie do produktu jest nieprawidłowe. Przeładuj stronę produktu i otwórz ponownie FastOG; przesłany identyfikator produktu był brakujący lub nie był liczbą.
invalid_product_cover 422 Ładunek okładki produktu jest nieprawidłowo sformatowany. Przeładuj edytor i zapisz ponownie; props, style i signals muszą być obiektami.
product_not_found 404 Nie udało się odczytać produktu ze sklepu. Sprawdź, czy produkt nadal istnieje i jest opublikowany, a następnie przeładuj edytor.
product_customization_not_on_plan 403 Dostosowywanie okładki dla poszczególnych produktów nie jest dostępne w tym planie. Ulepsz plan lub edytuj współdzieloną okładkę produktu.
no_product_handles 422 Nie znaleziono produktów do odświeżenia. Opublikuj co najmniej jeden produkt z publicznym handle, a następnie ponów odświeżanie podglądu udostępniania.
invalid_style 422 Blok stylu jest nieużywalny. Przeładuj edytor i ponownie wybierz kolory i czcionki; jednej wartości nie udało się znormalizować.
invalid_template 422 Żądany szablon nie znajduje się w katalogu tej platformy. Wybierz jeden z układów oferowanych przez edytor.
invalid_preset 422 Nazwa presetu nie jest oferowana przez tę platformę. Wybierz preset z ekranu konfiguracji.
invalid_set 422 Ładunek zestawu okładek jest brakujący lub nieprawidłowo sformatowany. Przeładuj ekran konfiguracji i ponownie wybierz zestaw.
preset_not_applyable 422 Presetu nie można zastosować do każdego typu strony. Wybierz inny preset; w tym brakuje okładki dla co najmniej jednego typu strony.
template_not_available 422 Szablon nie znajduje się w katalogu szablonów do renderowania. Wybierz układ oferowany przez selektor.
template_not_available_on_shopify 422 Szablon nie jest dostępny w sklepach Shopify. Wybierz układ oferowany przez edytor Shopify.
template_not_available_on_woocommerce 422 Szablon nie jest dostępny w sklepach WooCommerce. Wybierz układ oferowany przez Studio.
template_unavailable 422 Szablon nie jest dostępny dla tego sklepu. Wybierz układ oferowany przez edytor; jest wycofany, nieznany lub przekracza to, co sklep może wyrenderować.
template_not_on_plan 403 Szablon wymaga wyższego planu. Zmień plan lub wybierz układ objęty bieżącym planem. Odpowiedź wskazuje plan w requires.
template_requires_higher_plan 403 Szablon wymaga wyższego planu. Odpowiedź wskazuje plan w requires.
no_rule 404 Nie ma jeszcze reguły okładki dla tego typu strony. Najpierw zapisz okładkę dla tego typu strony w edytorze.
cover_not_configured 404 Nie zapisano jeszcze okładki produktu. Zapisz okładkę produktu przed jej pobraniem lub udostępnieniem.
schedule_only_product 422 Planowanie kampanii istnieje tylko dla okładek produktów. Usuń datę przywrócenia lub przenieś kampanię do okładki produktu.
not_dismissible 422 Tego ogłoszenia nie można odrzucić. Przeładuj stronę; zostało już wycofane lub należy do innego sklepu.
unsupported_locale 422 Ten język interfejsu nie jest dołączony do tej aplikacji. Wybierz jeden z języków wymienionych w odpowiedzi w supported.
no_setup_sets 422 Nie udało się złożyć żadnych wyselekcjonowanych zestawów okładek. Ponów ekran konfiguracji; jeśli pozostaje pusty, skontaktuj się z pomocą techniczną.
export_unavailable 403 Pobieranie nie jest dostępne w tym planie. Ulepsz do Pro lub wyższego, aby pobierać pliki okładek.
cancellation_failed 502 Anulowanie subskrypcji zostało odrzucone. Spróbuj ponownie za chwilę; jeśli nadal się nie udaje, anuluj na stronie rozliczeń Shopify lub skontaktuj się z pomocą techniczną.
logo_override_on_plan 403 Zastąpienie logo nie jest dostępne w tym planie. Ulepsz plan lub usuń zastąpienie logo.
invalid_logo 422 Plik logo nie jest akceptowanym obrazem. Prześlij PNG, JPEG lub WebP poniżej limitu rozmiaru pokazanego w edytorze.
invalid_brand_image 422 Obraz referencyjny marki jest nieużywalny. Prześlij obsługiwany obraz poniżej limitu rozmiaru lub usuń referencję i zapisz ponownie.
brand_image_too_large 422 Obraz referencyjny marki jest za duży. Zmniejsz plik i prześlij go ponownie.
brand_colors_too_many 422 Podano więcej niż trzy kolory marki. Prześlij co najwyżej trzy kolory w formacie hex.
upload_failed 500 Nie udało się zapisać przesłanego pliku. Spróbuj ponownie; jeśli nadal się nie udaje, skontaktuj się z pomocą techniczną — magazyn zasobów nie zwrócił publicznego URL.
attachment_upload_failed 500 Nie udało się zapisać załącznika do zgłoszenia. Wyślij wiadomość bez załącznika, a następnie wyślij plik e-mailem do pomocy technicznej.
invalid_webhook 401 Podpis webhooka sklepu nie został zweryfikowany. Sprawdź, czy sekret webhooka w ustawieniach FastOG w WordPress jest zgodny z tym wydanym przez FastOG.
not_found 404 Ten endpoint już nie istnieje. Otwórz ponownie Studio z panelu administracyjnego WordPress.
meta_refresh_unavailable 503 Odświeżanie podglądu udostępniania nie jest skonfigurowane. Udostępnij link ponownie z Facebooka.
theme_write_disabled 409 Edycja motywu nie jest włączona dla tej aplikacji. Użyj osadzenia aplikacji motywu zamiast poprawki pliku motywu.
scope_required 403 FastOG nie ma uprawnienia Shopify. Zatwierdź żądane zakresy za pomocą consent_url w odpowiedzi, a następnie ponów poprawkę.

Most Wix

Most Wix jest podpisywany przez aplikację Wix, a nie przez sesję sprzedawcy, więc jego błędy są adresowane do dewelopera aplikacji. Każda odpowiedź nadal zawiera code i request_id; identyfikator żądania mostu to ten z podpisanego envelope'a.

Kod HTTP Co to oznacza i co zrobić
invalid_bridge_signature 401 Podpis mostu Wix nie został zweryfikowany. Wygeneruj żądanie ponownie ze wspólnym sekretem, dokładną ścieżką i znacznikiem czasu młodszym niż pięć minut.
invalid_bridge_body 400 Treść envelope'a mostu jest nieprawidłowa. Wyślij body jako obiekt JSON i zakoduj każdą liczbę w nim jako string, aby podpis kanoniczny się zgadzał.
replayed_bridge_request 401 To żądanie mostu zostało już użyte. Wygeneruj nowy request_id dla każdego wywołania modyfikującego.
wix_site_not_installed 403 FastOG nie jest zainstalowany na tej stronie Wix. Zainstaluj aplikację FastOG na stronie, a następnie otwórz ją ponownie.
wix_site_not_provisioned 422 Strona Wix nie ma jeszcze danych uwierzytelniających do podpisywania. Zainstaluj ponownie aplikację FastOG, aby strona została wyposażona w klucz API.
invalid_page_type 422 Typ strony nie jest obsługiwany przez FastOG na Wix. Wyślij jeden z typów stron oferowanych przez Studio.
rule_not_found 404 Nie ma reguły o tym id. Odśwież listę; reguła została usunięta lub należy do innej strony.
invalid_target_id 422 Identyfikator celu Wix jest nieprawidłowy dla tego typu strony. Wyślij id, które aplikacja Wix dostarcza dla tego typu strony.
invalid_preview 422 Ładunek podglądu jest nieprawidłowy. Sprawdź obiekt details, aby znaleźć błędne pole.
invalid_rule 422 Ładunek reguły okładki jest nieprawidłowy. Sprawdź obiekt details; template jest wymagany, a opcjonalne bloki muszą być obiektami.
invalid_sync 422 Ładunek synchronizacji jest nieprawidłowy. Sprawdź obiekt details; target_type i target_id muszą się zgadzać.
invalid_regenerate_url 422 Brakuje URL-a do ponownego wygenerowania. Wyślij URL strony w url.
invalid_regenerate_host 422 URL nie należy do hosta FastOG. Wyślij URL okładki z fastog.com.
ai_presets_unsupported 422 Zestawy okładek projektowane przez AI nie są już generowane. Wybierz jeden z wyselekcjonowanych wyglądów.
original_tags_required 422 Oryginalne tagi metadanych są wymagane. Wyślij original_tags (lub current_tags), aby odinstalowanie mogło przywrócić metadane strony.
invalid_restored 422 Ładunek przywracanych kluczy jest nieprawidłowy. Wyślij restored jako tablicę kluczy metadanych.
invalid_seo_target 422 Typ celu SEO jest nieznany. Użyj site, pattern lub item w ścieżce.
invalid_seo_payload 422 Ładunek metadanych SEO jest nieprawidłowy. Wyślij target_id, current_tags i fastog_url jako bezwzględny URL http(s).
sync_failed 500 Synchronizacja metadanych do Wix nie powiodła się. Ponów próbę; jeśli nadal się nie udaje, sprawdź, czy strona jest osiągalna i czy aplikacja jest nadal zainstalowana.
invalid_tier 422 Ten plan nie jest sprzedawany przez FastOG na Wix. Wyślij starter, pro lub scale jako tier.

Powierzchnia demo

Demo to konsola sprzedażowa dostępna tylko dla właściciela, a nie endpoint dla sprzedawców.

Kod HTTP Co to oznacza i co zrobić
url_required 422 Nie wysłano żadnego URL-a. Wklej link do sklepu lub produktu przed odczytaniem karty.
unreadable_url 422 Nie udało się odczytać tej strony. Sprawdź, czy link jest publiczny i kompletny; strony za logowaniem nie da się odczytać.
no_api_key 422 Brak klucza API do podpisywania okładek. Utwórz klucz API (lub wprowadź prawidłowy); odpowiedź zawiera link do strony kluczy API.
no_presets 500 Nie skonfigurowano żadnych presetów okładek. Skonfiguruj co najmniej jeden preset na serwerze.

Kody edytorów reguł z zakresem

Edytory reguł z zakresem (panel administracyjny Shopify i WooCommerce Studio) same tłumaczą te tokeny na język samego merchanta, więc ich odpowiedzi zawierają error i code, ale nie hint — drugi angielski opis tylko odbiegałby od zlokalizowanego, który merchant faktycznie widzi:

scope_already_defined, scoped_rule_limit_reached, scoped_rules_not_on_plan, scope_value_required, scope_value_too_long, unknown_scope_type, base_rule_required, scoped_rules_product_only, cannot_delete_base_rule.


Nadal masz problem?

  • Otwórz stronę Render Logs w panelu — każde zdarzenie (sukces i odrzucenie) jest tam wymienione wraz z jego error_code, statusem HTTP i żądanymi parametrami.
  • Uruchom php artisan og:diagnose na podpisanym URL, aby przejść przez cały potok i zobaczyć, na którym etapie występuje błąd.
  • Sprawdź w pasku bocznym dokumentację dla frameworka, którego używasz (Next.js, Express, SvelteKit, ...).

Wypróbuj za darmo — bez rejestracji

Podglądaj i testuj dynamiczne obrazy OG w kilka sekund.

Otwórz darmowy tester obrazów OG

A BeCaSimulations site