Téma

Chyby API — co který kód znamená a jak ho opravit

FastOG vrací strojově čitelné chybové kódy, když požadavek selže — ať už jde o vykreslení podepsaného OG obrázku, nebo volání jedné z administračních ploch přímo v produktu. Každá chybová odpověď obsahuje:

  • error — původní krátký token. Zůstává u každého selhání, aby starší klient fungoval dál.
  • code — stejný stabilní, zdokumentovaný chybový kód (tabulka níže), pod názvem, který používá veřejné API.
  • message — jednořádkový popis toho, co se pokazilo.
  • hint — krátký popis jednoduchým jazykem, co se pokazilo a jak to opravit.
  • docs_url — odkaz na tuto stránku ukotvený na sekci daného kódu.
  • request_id — propojuje toto HTTP selhání s řádkem v tabulce Render Logs v dashboardu (vrací se také v hlavičce odpovědi X-Request-ID). Plocha, která nemá co propojit, odpovídá null, ale klíč je vždy přítomný.

Plochy přímo v produktu — Shopify admin, WooCommerce Studio, Wix bridge a demo — odpovídají stejnou obálkou pro níže uvedené kódy, takže selhání znamená totéž, ať na něj narazíš kdekoli. Plocha modulu si může ponechat HTTP status, který vracela vždy pro daný kód (například render_failed odpovídá 503 u exportu obálky a 502 u veřejného API); kód, zpráva, nápověda ani odkaz na dokumentaci se nemění.

Čtení chybové odpovědi

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-..."
}

Pokud dostaneš odpověď, které nerozumíš, nejrychlejší postup je:

  1. Poznamenej si code.
  2. Zkontroluj svůj URL builder — většina selhání jsou chyby v podpisu, ne problémy s účtem.
  3. Podle kódu níže najdi přesnou příčinu a opravu.
  4. V dashboardu otevři Render Logs a filtruj podle stejného error_code — každý řádek zobrazuje požadované parametry, takže můžeš reprodukovat (a ověřit, že request_id sedí).

Podepisování a autentizace

missing_signature

V tvém požadavku chybí query parametry key a/nebo s (podpis).

Oprava: ujisti se, že tvá URL obsahuje jak key=<api-key>, tak s=<hmac-signature>. Použij SDK nebo postup /docs/hmac-signature-guide pro její sestavení.

invalid_signature

Hodnota s neodpovídala tomu, co pro tuto URL vytváří tvůj HMAC secret.

Oprava: podpis pokrývá všechny query parametry kromě s, s klíči seřazenými. Změna jakéhokoli parametru — včetně přeřazení, rozdílů v URL-encoding nebo přidání bílého znaku — podpis zneplatní. Po každé změně podepiš znovu. Ověř, že tvůj secret je stejný jako ten, který se zobrazil při vytvoření API klíče.

invalid_signature_format

Hodnota s není 64znakový hex řetězec.

Oprava: podpis musí být raw SHA-256 hex (malá písmena a-f0-9). Pokud výstup kóduješ do base64 nebo ho zkracuješ, použij prostý hex.

expired_timestamp

Časové razítko t, které jsi poskytl, je starší než 5 minut.

Oprava: generuj časové razítko znovu pokaždé, když sestavuješ URL. Tento kód se týká staršího postupu s podepsanou URL; aktuální postup HMAC v2 žádné časové razítko nemá.

invalid_api_key

key, které jsi předal, neexistuje.

Oprava: zkopíruj celý API klíč z dashboardu — je to veřejný identifikátor začínající na sk_. Je veřejný a v URL je bezpečný; secret (nikdy v URL) je to, co prokazuje vlastnictví.

missing_hmac_secret

API klíč nemá nakonfigurovaný HMAC secret.

Oprava: vytvoř v dashboardu nový API klíč — HMAC secret se vygeneruje a zobrazí jednou při vytvoření.


Parametr / vstup

invalid_image_url

Prop nesoucí URL (image, brand_logo, logo, avatar, background_image, ...) není veřejná http(s) URL.

Oprava: předej veřejně dostupnou URL https://.... Localhost, privátní IP adresy a samotné cesty jsou odmítnuty, aby se zabránilo server-side request forgery.


Předplatné

subscription_required (402)

Požadavek dorazil na Dynamic API, ale tvůj účet nemá aktivní plán. Přístup k API je pouze na předplatné: plán je podmínkou a nese stejnou škálu pokrytí a možností, jakou prodávají aplikace FastOG. Samotné rendery se neměří — neexistuje měsíční kvóta renderů ani účtování nadlimitního čerpání.

Oprava: vyber v dashboardu plán Dynamic API a vytvoř API klíč. Odpověď obsahuje top_up_url odkazující na stránku s plány.


Služba vykreslování

store_blocked (403)

Vykreslování pro obchod za tímto klíčem bylo FastOG pozastaveno (například kvůli zneužití nebo nekontrolovanému využívání). Obaly již uložené v mezipaměti na edge mohou dál sloužit, dokud nevyprší. Pro vyřešení kontaktuj podporu; nic, co můžeš změnit v požadavku, to neopraví.

render_unreachable

Službu vykreslování nebylo možné kontaktovat (krátké okno restartu).

Oprava: zkus to znovu za několik sekund. Vykreslení se pro tento pokus nezapočítalo.

render_failed

Služba vykreslování vrátila pro tvůj požadavek chybu.

Oprava: zkontroluj props své šablony — dlouhé/chybně formátované hodnoty, nepodporovaná pole nebo nedostupný upstream obrázek. Odpověď obsahuje podkladovou status. Vykreslení se nezapočítalo.


Administrátorská rozhraní obchodu

Tyto kódy odpovídají z administrace Shopify a z WooCommerce Studio — z vestavěných editorů, ve kterých obchodník pracuje, nikoli z podepsaného API. Několik z nich je společných s veřejným API (invalid_image_url, render_failed, invalid_signature); ty si zachovávají výše zdokumentovanou položku.

Kód HTTP Co to znamená a co udělat
invalid_shop 422 Shopify obchod se nepodařilo identifikovat. Znovu načti aplikaci FastOG ze svého Shopify adminu, aby vložený požadavek znovu nesl obchod, a pak to zkus znovu.
invalid_shop_or_page 422 Obchod nebo typ stránky je neznámý. Otevři aplikaci FastOG ze svého Shopify adminu a v editoru vyber typ stránky pro cover.
invalid_store 422 WooCommerce obchod se nepodařilo identifikovat. Znovu otevři Studio ze svého WordPress adminu, aby se znovu předložil token obchodu, a pak to zkus znovu.
invalid_store_or_page 422 Obchod nebo typ stránky je neznámý. Znovu otevři Studio ze svého WordPress adminu a vyber typ stránky pro cover, který editor nabízí.
missing_api_key 422 Obchod nemá podpisový klíč. Dokonči instalaci pluginu ze svého WordPress adminu, aby FastOG mohl obchodu vydat jeho podpisový klíč.
store_ownership_unverified 403 WordPress web se nepodařilo ověřit. Musí být dostupný přes veřejné HTTPS s povoleným REST API.
community_is_free 422 Plán Community je zdarma. Je to výchozí bezplatný plán a nelze ho zakoupit; pro upgrade vyber placenou úroveň.
not_installed 404 FastOG není pro tento obchod nainstalován. Nainstaluj aplikaci FastOG z Shopify App Store pro tento obchod a pak ji znovu otevři.
oauth_required 409 Obchod musí FastOG znovu autorizovat. Znovu spusť OAuth instalaci FastOG ze svého Shopify adminu; uložené oprávnění bylo odvoláno nebo se změnily jeho scopes.
reconnect_required 409 Připojení k Shopify je třeba znovu navázat. Použij tlačítko Reconnect v aplikaci FastOG, aby se vydal nový access token.
token_rejected 409 Shopify vydal access token a pak ho odmítl. Zkus reconnect jednou znovu; pokud ho Shopify bude odmítat dál, přeinstaluj aplikaci.
unauthorized 401 Požadavek nenese platnou session pro toto rozhraní. Znovu načti aplikaci FastOG ze svého platformového adminu, aby se připojil nový session token, a pak to zkus znovu.
shop_not_found 404 Obchod už ve FastOG neexistuje. Přeinstaluj FastOG ze svého Shopify adminu, aby se záznam obchodu znovu vytvořil.
invalid_product 422 Odkaz na produkt není platný. Znovu načti stránku produktu a otevři FastOG; odeslané product id chybělo nebo nebylo číselné.
invalid_product_cover 422 Payload coveru produktu je poškozený. Znovu načti editor a ulož znovu; props, style a signals musí být každý objekt.
product_not_found 404 Produkt se nepodařilo načíst z obchodu. Zkontroluj, že produkt stále existuje a je publikovaný, a pak znovu načti editor.
product_customization_not_on_plan 403 Přizpůsobení coveru pro jednotlivé produkty není v tomto plánu. Upgraduj, nebo místo toho uprav sdílený cover produktu.
no_product_handles 422 Nebyly nalezeny žádné produkty k obnovení. Publikuj alespoň jeden produkt s veřejným handle a pak zkus obnovení share-preview znovu.
invalid_style 422 Blok stylu nelze použít. Znovu načti editor a znovu vyber barvy a fonty; jednu hodnotu nešlo normalizovat.
invalid_template 422 Požadovaná šablona není v katalogu této platformy. Vyber jeden z layoutů, které editor nabízí.
invalid_preset 422 Název presetu není takový, jaký tato platforma nabízí. Vyber preset na obrazovce nastavení.
invalid_set 422 Payload sady coverů chybí nebo je poškozený. Znovu načti obrazovku nastavení a znovu vyber sadu.
preset_not_applyable 422 Preset nelze použít na všechny typy stránek. Vyber jiný preset; tomuto chybí cover alespoň pro jeden typ stránky.
template_not_available 422 Šablona není ve vykreslitelném katalogu. Vyber layout, který picker nabízí.
template_not_available_on_shopify 422 Šablona není dostupná na Shopify obchodech. Vyber layout, který nabízí Shopify editor.
template_not_available_on_woocommerce 422 Šablona není dostupná na WooCommerce obchodech. Vyber layout, který nabízí Studio.
template_unavailable 422 Šablona není pro tento obchod dostupná. Vyber layout, který editor nabízí; je vyřazená, neznámá, nebo nad rámec toho, co obchod smí vykreslit.
template_not_on_plan 403 Šablona vyžaduje vyšší plán. Změň plán, nebo vyber layout, který aktuální plán pokrývá. Odpověď uvádí plán v requires.
template_requires_higher_plan 403 Šablona vyžaduje vyšší plán. Odpověď uvádí plán v requires.
no_rule 404 Pro tento typ stránky zatím neexistuje žádné pravidlo coveru. Nejprve v editoru ulož cover pro tento typ stránky.
cover_not_configured 404 Zatím nebyl uložen žádný cover produktu. Před stažením nebo sdílením ulož cover produktu.
schedule_only_product 422 Plánování kampaně existuje jen pro covery produktů. Odstraň datum revertu, nebo přesuň kampaň na cover produktu.
not_dismissible 422 To oznámení nelze zavřít. Znovu načti stránku; už bylo vyřazeno, nebo patří jinému obchodu.
unsupported_locale 422 Tento jazyk UI není pro tuto aplikaci přibalen. Vyber jeden z jazyků, které odpověď uvádí v supported.
no_setup_sets 422 Nepodařilo se sestavit žádné kurátorované sady coverů. Zkus obrazovku nastavení znovu; pokud zůstane prázdná, kontaktuj podporu.
export_unavailable 403 Stahování není v tomto plánu. Pro stažení souborů coverů upgraduj na Pro nebo výš.
cancellation_failed 502 Zrušení předplatného bylo odmítnuto. Zkus to za chvíli znovu; pokud to bude selhávat dál, zruš předplatné na stránce fakturace Shopify nebo kontaktuj podporu.
logo_override_on_plan 403 Přepsání loga není v tomto plánu. Upgraduj, nebo přepsání loga zruš.
invalid_logo 422 Soubor loga není přijímaný obrázek. Nahraj PNG, JPEG nebo WebP pod limit velikosti zobrazený v editoru.
invalid_brand_image 422 Referenční obrázek značky nelze použít. Nahraj podporovaný obrázek pod limit velikosti, nebo referenci zruš a ulož znovu.
brand_image_too_large 422 Referenční obrázek značky je příliš velký. Zmenši soubor a nahraj ho znovu.
brand_colors_too_many 422 Bylo zadáno více než tři barvy značky. Pošli nejvýše tři hex barvy.
upload_failed 500 Nahraný soubor se nepodařilo uložit. Zkus to znovu; pokud to bude selhávat dál, kontaktuj podporu — úložiště assetů nevrátilo veřejnou URL.
attachment_upload_failed 500 Přílohu podpory se nepodařilo uložit. Pošli zprávu bez přílohy a pak soubor pošli e-mailem na podporu.
invalid_webhook 401 Podpis webhooku obchodu se nepodařilo ověřit. Zkontroluj, že webhook secret v tvém nastavení FastOG ve WordPressu odpovídá tomu, který vydal FastOG.
not_found 404 Tento endpoint už neexistuje. Znovu otevři Studio ze svého WordPress adminu.
meta_refresh_unavailable 503 Obnovení share-preview není nakonfigurováno. Místo toho odkaz znovu nasdílej z Facebooku.
theme_write_disabled 409 Úprava šablony není pro tuto aplikaci povolena. Použij theme app embed místo opravy souboru šablony.
scope_required 403 FastOG nemá oprávnění v Shopify. Schval požadované scopes pomocí consent_url v odpovědi a pak opravu zkus znovu.

Wix bridge

Wix bridge je podepisován aplikací Wix, nikoli relací obchodníka, takže jeho chyby jsou adresovány vývojáři aplikace. Každá odpověď stále nese code a request_id; id požadavku bridge je to z podepsaného obalu.

Kód HTTP Co to znamená a co dělat
invalid_bridge_signature 401 Podpis Wix bridge se nepodařilo ověřit. Znovu vytvoř požadavek se sdíleným tajemstvím, přesnou cestou a časovým razítkem mladším než pět minut.
invalid_bridge_body 400 Tělo obalu bridge je poškozené. Pošli body jako objekt JSON a každé číslo v něm zakóduj jako řetězec, aby kanonický podpis seděl.
replayed_bridge_request 401 Tento požadavek bridge už byl použit. Pro každé mutující volání vytvoř nový request_id.
wix_site_not_installed 403 FastOG není na tomto Wix webu nainstalován. Nainstaluj aplikaci FastOG na web a pak ho znovu otevři.
wix_site_not_provisioned 422 Wix web zatím nemá podpisové přihlašovací údaje. Přeinstaluj aplikaci FastOG, aby byl web vybaven API klíčem.
invalid_page_type 422 Typ stránky není jeden z těch, které FastOG na Wixu pokrývá. Pošli jeden z typů stránek, které nabízí Studio.
rule_not_found 404 Neexistuje pravidlo s tímto id. Obnov seznam; pravidlo bylo smazáno nebo patří jinému webu.
invalid_target_id 422 Cílové id Wix není pro tento typ stránky platné. Pošli id, které aplikace Wix pro tento typ stránky poskytuje.
invalid_preview 422 Datová část náhledu je poškozená. Přečti objekt details a najdi selhávající pole.
invalid_rule 422 Datová část pravidla coveru je poškozená. Přečti objekt details; template je povinný a volitelné bloky musí být objekty.
invalid_sync 422 Datová část synchronizace je poškozená. Přečti objekt details; target_type a target_id musí souhlasit.
invalid_regenerate_url 422 Chybí URL k regeneraci. Pošli URL stránky v url.
invalid_regenerate_host 422 URL nepatří hostiteli FastOG. Pošli URL coveru na fastog.com.
ai_presets_unsupported 422 Sady coverů navržené AI se už negenerují. Vyber místo toho jeden z kurátorovaných vzhledů.
original_tags_required 422 Původní meta tagy jsou povinné. Pošli original_tags (nebo current_tags), aby odinstalace mohla obnovit metadata webu.
invalid_restored 422 Datová část obnovených klíčů je poškozená. Pošli restored jako pole klíčů metadat.
invalid_seo_target 422 Typ cíle SEO je neznámý. V cestě použij site, pattern nebo item.
invalid_seo_payload 422 Datová část metadat SEO je poškozená. Pošli target_id, current_tags a fastog_url jako absolutní URL s http(s).
sync_failed 500 Synchronizace metadat do Wixu selhala. Zkus to znovu; pokud selhává dál, zkontroluj, že je web dostupný a aplikace je stále nainstalovaná.
invalid_tier 422 Tento tarif FastOG na Wixu neprodává. Jako tier pošli starter, pro nebo scale.

Demo plocha

Demo je prodejní konzole pouze pro vlastníka, nikoli endpoint pro obchodníky.

Kód HTTP Co to znamená a co dělat
url_required 422 Nebyla odeslána žádná URL. Před načtením karty vlož odkaz na obchod nebo produkt.
unreadable_url 422 Tuto stránku nebylo možné načíst. Zkontroluj, že odkaz je veřejný a úplný; stránku za přihlášením nelze načíst.
no_api_key 422 Není k dispozici žádný API klíč pro podepisování coverů. Vytvoř API klíč (nebo zadej platný); odpověď odkazuje na stránku API klíčů.
no_presets 500 Nejsou nakonfigurovány žádné presety coverů. Nakonfiguruj na serveru alespoň jeden preset.

Kódy editorů pravidel s rozsahem

Editory pravidel s rozsahem (Shopify admin a WooCommerce Studio) si tyto tokeny překládají samy do jazyka obchodníka, takže jejich odpovědi obsahují error a code, ale žádné hint — druhý anglický popis by se jen rozešel s lokalizovaným popisem, který obchodník skutečně vidí:

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.


Stále máš problém?

  • Otevři stránku Render Logs v dashboardu — každý výsledek (úspěch i odmítnutí) je uveden s error_code, stavovým kódem HTTP a požadovanými parametry.
  • Spusť php artisan og:diagnose na podepsané URL, abys prošel celý pipeline a zjistil, která fáze selhává.
  • Podívej se do dokumentace v postranním panelu pro framework, který používáš (Next.js, Express, SvelteKit, ...).

Vyzkoušejte zdarma – bez registrace

Náhled a testování dynamických OG obrázků během pár sekund.

Otevřít bezplatný tester OG obrázků

A BeCaSimulations site