API-fel — vad varje kod betyder och hur du åtgärdar den
FastOG returnerar maskinläsbara felkoder när en begäran misslyckas — en signerad OG-Bild-rendering, eller ett anrop till en av produktens adminytor. Varje felsvar innehåller:
error— den äldre korta token. Finns fortfarande kvar vid varje fel så att en äldre klient fortsätter att fungera.code— samma stabila, dokumenterade felkod (tabellen nedan), under det namn som det publika API:et använder.message— en mening som beskriver vad som gick fel.hint— en kort beskrivning på klarspråk av vad som gick fel och hur du åtgärdar det.docs_url— en länk till den här sidan, ankrad vid avsnittet för den koden.request_id— kopplar detta HTTP-fel till en rad i dashboardens Render Logs-tabell (returneras även i svarshuvudetX-Request-ID). En yta utan något att koppla till svararnull, men nyckeln finns alltid med.
Produktens ytor — Shopify-adminen, WooCommerce Studio, Wix-bryggan och demon — svarar
med samma envelope för koderna nedan, så ett fel betyder samma sak var du än stöter på det. En
modyta kan behålla den HTTP-status som den alltid har returnerat för en kod (till exempel svarar render_failed
503 på cover-exporten och 502 på det publika API:et); koden, meddelandet, tipset och dokumentationslänken ändras inte.
Läsa ett felsvar
{
"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-..."
}
Om du får ett svar som du inte förstår är den snabbaste vägen:
- Notera
code. - Kontrollera din URL-byggare — de flesta fel beror på signeringsbuggar, inte på kontoproblem.
- Matcha koden nedan för att hitta den exakta orsaken och åtgärden.
- Öppna Render Logs i instrumentpanelen och filtrera på samma
error_code— varje rad visar de begärda parametrarna så att du kan reproducera (och bekräfta attrequest_idmatchar).
Signering & autentisering
missing_signature
Din förfrågan saknar query-parametrarna key och/eller s (signatur).
Åtgärd: se till att din URL innehåller både key=<api-key> och s=<hmac-signature>. Använd SDK:t eller genomgången av /docs/hmac-signature-guide för att bygga den.
invalid_signature
Värdet på s matchade inte det som din HMAC-hemlighet producerar för den här URL:en.
Åtgärd: signaturen omfattar alla query-parametrar utom s, med nycklarna sorterade. Om du ändrar någon parameter — inklusive att ändra ordning, skillnader i URL-kodning eller att lägga till blanksteg — blir signaturen ogiltig. Signera om efter varje ändring. Bekräfta att din hemlighet är samma som den som visades när API-nyckeln skapades.
invalid_signature_format
Värdet på s är inte en hex-sträng på 64 tecken.
Åtgärd: signaturen måste vara rå SHA-256-hex (gemener a-f0-9). Om du base64-kodar eller trunkerar utdata, använd vanlig hex i stället.
expired_timestamp
Tidsstämpeln t som du angav är mer än 5 minuter gammal.
Åtgärd: generera om tidsstämpeln varje gång du bygger en URL. Den här koden gäller det äldre flödet med signerade URL:er; det nuvarande HMAC v2-flödet har ingen tidsstämpel.
invalid_api_key
key som du angav finns inte.
Åtgärd: kopiera hela API-nyckeln från instrumentpanelen — det är den publika identifieraren som börjar med sk_. Den är publik och säker att ha i URL:er; det är hemligheten (aldrig i URL:er) som bevisar innehav.
missing_hmac_secret
API-nyckeln har ingen HMAC-hemlighet konfigurerad.
Åtgärd: skapa en ny API-nyckel i instrumentpanelen — HMAC-hemligheten genereras och visas en gång vid skapandet.
Parameter / indata
invalid_image_url
En prop som innehåller en URL (image, brand_logo, logo, avatar, background_image, ...) är inte en offentlig http(s)-URL.
Åtgärd: skicka en offentligt hämtbar https://...-URL. Localhost, privata IP-adresser och enbart sökvägar avvisas för att förhindra server-side request forgery.
Abonnemang
subscription_required (402)
Begäran nådde Dynamic API men ditt konto har ingen aktiv plan. API-åtkomst är endast för abonnemang: planen är grinden, och den bär samma täcknings- och kapacitetsstege som FastOG-apparna säljer. Själva renderingarna mäts inte — det finns ingen månatlig renderingskvot och ingen överbruksfakturering.
Åtgärd: välj en Dynamic API-plan i instrumentpanelen och skapa en API-nyckel. Svaret innehåller en top_up_url som pekar på plansidan.
Renderingstjänst
store_blocked (403)
Renderingen för butiken bakom den här nyckeln har pausats av FastOG (till exempel missbruk eller skenande användning). Cachar som redan finns i edge-nätverket kan fortsätta att serveras tills de löper ut. Kontakta supporten för att lösa det; inget du kan ändra i begäran kommer att åtgärda detta.
render_unreachable
Renderingstjänsten kunde inte nås (ett kort omstartsfönster).
Åtgärd: försök igen om några sekunder. Renderingen räknades inte för det här försöket.
render_failed
Renderingstjänsten returnerade ett fel för din begäran.
Åtgärd: kontrollera dina template-props — långa/ felaktiga värden, fält som inte stöds eller en bild från en uppströmskälla som inte går att nå. Svaret innehåller det underliggande status. Renderingen räknades inte.
Butiksadminytor
Dessa koder svarar från Shopify-adminen och WooCommerce Studio — de inbäddade redigerarna som en handlare
arbetar i snarare än det signerade API:et. Flera delas med det publika API:et (invalid_image_url,
render_failed, invalid_signature); de behåller posten som dokumenteras ovan.
| Kod | HTTP | Vad det betyder och vad du ska göra |
|---|---|---|
invalid_shop |
422 | Shopify-butiken kunde inte identifieras. Ladda om FastOG-appen från din Shopify-admin så att den inbäddade förfrågan återigen innehåller butiken, och försök sedan igen. |
invalid_shop_or_page |
422 | Butiken eller sidtypen är okänd. Öppna FastOG-appen från din Shopify-admin och välj en omslagssidtyp i redigeraren. |
invalid_store |
422 | WooCommerce-butiken kunde inte identifieras. Öppna Studio igen från din WordPress-admin så att butikstokenet presenteras igen, och försök sedan igen. |
invalid_store_or_page |
422 | Butiken eller sidtypen är okänd. Öppna Studio igen från din WordPress-admin och välj en omslagssidtyp som redigeraren erbjuder. |
missing_api_key |
422 | Butiken har ingen signeringsnyckel. Slutför installationen av plugin-programmet från din WordPress-admin så att FastOG kan utfärda en signeringsnyckel till butiken. |
store_ownership_unverified |
403 | WordPress-webbplatsen kunde inte verifieras. Den måste vara nåbar över offentlig HTTPS med sitt REST API aktiverat. |
community_is_free |
422 | Community-planen är gratis. Det är den kostnadsfria standardplanen och går inte att köpa; välj en betald nivå för att uppgradera. |
not_installed |
404 | FastOG är inte installerat för den här butiken. Installera FastOG-appen från Shopify App Store för den här butiken och öppna den sedan igen. |
oauth_required |
409 | Butiken behöver auktorisera FastOG igen. Kör FastOG OAuth-installationen igen från din Shopify-admin; det sparade tillståndet återkallades eller så ändrades dess scopes. |
reconnect_required |
409 | Shopify-anslutningen behöver upprättas igen. Använd knappen Reconnect i FastOG-appen så att en ny åtkomsttoken utfärdas. |
token_rejected |
409 | Shopify utfärdade en åtkomsttoken och nekade den sedan. Försök med återanslutningen en gång till; om Shopify fortsätter neka den, installera om appen. |
unauthorized |
401 | Förfrågan innehåller ingen giltig session för den här ytan. Ladda om FastOG-appen från din plattformsadmin så att en ny sessionstoken bifogas, och försök sedan igen. |
shop_not_found |
404 | Butiken finns inte längre i FastOG. Installera om FastOG från din Shopify-admin för att återskapa butiksposten. |
invalid_product |
422 | Produktreferensen är inte giltig. Ladda om produktsidan och öppna FastOG igen; det skickade produkt-id:t saknades eller var inte numeriskt. |
invalid_product_cover |
422 | Produktomslagets payload är felaktig. Ladda om redigeraren och spara igen; props, style och signals måste vardera vara ett objekt. |
product_not_found |
404 | Produkten kunde inte läsas från butiken. Kontrollera att produkten fortfarande finns och är publicerad, och ladda sedan om redigeraren. |
product_customization_not_on_plan |
403 | Anpassning av omslag per produkt ingår inte i den här planen. Uppgradera, eller redigera det delade produktomslaget i stället. |
no_product_handles |
422 | Inga produkter hittades att uppdatera. Publicera minst en produkt med en offentlig handle och försök sedan uppdatera delningsförhandsvisningen igen. |
invalid_style |
422 | Stilblocket går inte att använda. Ladda om redigeraren och välj färger och typsnitt igen; ett värde kunde inte normaliseras. |
invalid_template |
422 | Den begärda mallen finns inte i den här plattformens katalog. Välj en av layouterna som redigeraren erbjuder. |
invalid_preset |
422 | Förinställningens namn är inte ett som den här plattformen erbjuder. Välj en förinställning på installationsskärmen. |
invalid_set |
422 | Payloaden för omslagssetet saknas eller är felaktig. Ladda om installationsskärmen och välj ett set igen. |
preset_not_applyable |
422 | Förinställningen kan inte tillämpas på alla sidtyper. Välj en annan förinställning; den här saknar ett omslag för minst en sidtyp. |
template_not_available |
422 | Mallen finns inte i den renderbara katalogen. Välj en layout som väljaren erbjuder. |
template_not_available_on_shopify |
422 | Mallen är inte tillgänglig för Shopify-butiker. Välj en layout som Shopify-redigeraren erbjuder. |
template_not_available_on_woocommerce |
422 | Mallen är inte tillgänglig för WooCommerce-butiker. Välj en layout som Studio erbjuder. |
template_unavailable |
422 | Mallen är inte tillgänglig för den här butiken. Välj en layout som redigeraren erbjuder; den är indragen, okänd eller över vad butiken får rita. |
template_not_on_plan |
403 | Mallen kräver en högre plan. Byt plan, eller välj en layout som den nuvarande planen omfattar. Svaret anger planen i requires. |
template_requires_higher_plan |
403 | Mallen kräver en högre plan. Svaret anger planen i requires. |
no_rule |
404 | Det finns ingen omslagsregel för den här sidtypen ännu. Spara ett omslag för den här sidtypen i redigeraren först. |
cover_not_configured |
404 | Inget produktomslag har sparats ännu. Spara ett produktomslag innan du laddar ner eller delar det. |
schedule_only_product |
422 | Kampanjschemaläggning finns bara för produktomslag. Ta bort återställningsdatumet, eller flytta kampanjen till produktomslaget. |
not_dismissible |
422 | Det meddelandet kan inte avfärdas. Ladda om sidan; det har redan dragits in eller tillhör en annan butik. |
unsupported_locale |
422 | Det UI-språket är inte paketerat för den här appen. Välj ett av språken som svaret listar i supported. |
no_setup_sets |
422 | Inga kurerade omslagsset kunde sättas ihop. Försök igen på installationsskärmen; om den fortsätter vara tom, kontakta supporten. |
export_unavailable |
403 | Nedladdningar ingår inte i den här planen. Uppgradera till Pro eller högre för att ladda ner omslagsfiler. |
cancellation_failed |
502 | Avbokningen av prenumerationen nekades. Försök igen om en stund; om det fortsätter misslyckas, avboka från Shopifys faktureringssida eller kontakta supporten. |
logo_override_on_plan |
403 | Åsidosättningen av logotypen ingår inte i den här planen. Uppgradera, eller rensa logotypens åsidosättning. |
invalid_logo |
422 | Logotypfilen är inte en accepterad bild. Ladda upp en PNG, JPEG eller WebP under storleksgränsen som visas i redigeraren. |
invalid_brand_image |
422 | Referensbilden för varumärket går inte att använda. Ladda upp en bild som stöds under storleksgränsen, eller rensa referensen och spara igen. |
brand_image_too_large |
422 | Referensbilden för varumärket är för stor. Minska filen och ladda upp den igen. |
brand_colors_too_many |
422 | Fler än tre varumärkesfärger angavs. Skicka högst tre hex-färger. |
upload_failed |
500 | Den uppladdade filen kunde inte lagras. Försök igen; om det fortsätter misslyckas, kontakta supporten — asset-lagret returnerade ingen offentlig URL. |
attachment_upload_failed |
500 | Supportbilagan kunde inte lagras. Skicka meddelandet utan bilagan och mejla sedan filen till supporten. |
invalid_webhook |
401 | Butikens webhook-signatur verifierades inte. Kontrollera att webhook-hemligheten i dina FastOG-inställningar i WordPress matchar den som FastOG utfärdade. |
not_found |
404 | Den endpointen finns inte längre. Öppna Studio igen från din WordPress-admin. |
meta_refresh_unavailable |
503 | Uppdatering av delningsförhandsvisning är inte konfigurerad. Dela länken igen från Facebook i stället. |
theme_write_disabled |
409 | Temaredigering är inte aktiverad för den här appen. Använd temats app-embed i stället för temafil-fixen. |
scope_required |
403 | FastOG saknar en Shopify-behörighet. Godkänn de begärda scopes med consent_url i svaret och försök sedan med fixen igen. |
Wix-brygga
Wix-bryggan signeras av Wix-appen, inte av en handlarsession, så dess fel riktas till apputvecklaren. Varje svar innehåller fortfarande code och request_id; bryggans request-id är det från det signerade kuvertet.
| Kod | HTTP | Vad det betyder och vad du ska göra |
|---|---|---|
invalid_bridge_signature |
401 | Wix-bryggans signatur verifierades inte. Skapa om requesten med den delade hemligheten, den exakta sökvägen och en tidsstämpel som är mindre än fem minuter gammal. |
invalid_bridge_body |
400 | Bryggans kuvert-body är felaktigt utformad. Skicka body som ett JSON-objekt och koda varje tal i det som en sträng, så att den kanoniska signaturen matchar. |
replayed_bridge_request |
401 | Den bryggrequesten har redan använts. Skapa en ny request_id för varje muterande anrop. |
wix_site_not_installed |
403 | FastOG är inte installerat på den här Wix-sajten. Installera FastOG-appen på sajten och öppna den sedan igen. |
wix_site_not_provisioned |
422 | Wix-sajten har inga signeringsuppgifter ännu. Installera om FastOG-appen så att sajten provisioneras med en API-nyckel. |
invalid_page_type |
422 | Sidtypen är inte en som FastOG täcker på Wix. Skicka en av de sidtyper som Studio erbjuder. |
rule_not_found |
404 | Det finns ingen regel med det id:t. Uppdatera listan; regeln har tagits bort eller tillhör en annan sajt. |
invalid_target_id |
422 | Wix-målets id är inte giltigt för den här sidtypen. Skicka det id som Wix-appen tillhandahåller för den sidtypen. |
invalid_preview |
422 | Förhandsgranskningens payload är felaktigt utformad. Läs details-objektet för att hitta det felande fältet. |
invalid_rule |
422 | Cover-regelns payload är felaktigt utformad. Läs details-objektet; template är obligatoriskt och de valfria blocken måste vara objekt. |
invalid_sync |
422 | Sync-payloaden är felaktigt utformad. Läs details-objektet; target_type och target_id måste stämma överens. |
invalid_regenerate_url |
422 | URL:en som ska regenereras saknas. Skicka sidans URL i url. |
invalid_regenerate_host |
422 | URL:en tillhör inte FastOG-värden. Skicka en cover-URL från fastog.com. |
ai_presets_unsupported |
422 | AI-designade cover-set genereras inte längre. Välj en av de kurerade stilarna i stället. |
original_tags_required |
422 | De ursprungliga metadatataggarna krävs. Skicka original_tags (eller current_tags) så att en avinstallation kan återställa sajtens metadata. |
invalid_restored |
422 | Payloaden för återställda nycklar är felaktigt utformad. Skicka restored som en array av metadatanycklar. |
invalid_seo_target |
422 | SEO-måltypen är okänd. Använd site, pattern eller item i sökvägen. |
invalid_seo_payload |
422 | SEO-metadatapayloaden är felaktigt utformad. Skicka target_id, current_tags och fastog_url som en absolut http(s)-URL. |
sync_failed |
500 | Metadatasynken till Wix misslyckades. Försök igen; om det fortsätter misslyckas, kontrollera att sajten är nåbar och att appen fortfarande är installerad. |
invalid_tier |
422 | Den planen är inte en som FastOG säljer på Wix. Skicka starter, pro eller scale som tier. |
Demoyta
Demon är den ägarexklusiva säljkonsolen, inte en handlarendpoint.
| Kod | HTTP | Vad det betyder och vad du ska göra |
|---|---|---|
url_required |
422 | Ingen URL skickades. Klistra in butiks- eller produktlänken innan du läser kortet. |
unreadable_url |
422 | Den sidan kunde inte läsas. Kontrollera att länken är offentlig och komplett; en sida bakom en inloggning kan inte läsas. |
no_api_key |
422 | Ingen API-nyckel är tillgänglig för att signera omslag. Skapa en API-nyckel (eller ange en giltig sådan); svaret länkar till sidan för API-nycklar. |
no_presets |
500 | Inga omslagsförval (presets) är konfigurerade. Konfigurera minst ett förval på servern. |
Koder för scoped-rule-redigerare
Redigerarna för scoped rules (Shopify admin och WooCommerce Studio) översätter dessa tokens själva till handlarens eget språk, så deras svar innehåller error och code men ingen hint — en andra engelsk beskrivning skulle bara glida ifrån den lokaliserade version som handlaren faktiskt ser:
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.
Fortfarande fast?
- Öppna sidan Render Logs i instrumentpanelen (dashboard) — varje utfall (lyckat + avvisat) listas med sin
error_code, HTTP-status och de begärda parametrarna. - Kör
php artisan og:diagnosepå en signerad URL för att gå igenom hela flödet och se vilket steg som misslyckas. - Kolla dokumentationen i sidopanelen för det ramverk du använder (Next.js, Express, SvelteKit, ...).