Emne

API-fejl — hvad hver kode betyder, og hvordan du retter den

FastOG returnerer maskinlæsbare fejlkoder, når en anmodning fejler — en signeret OG-billedrendering eller et kald til en af de indbyggede admin-flader. Hvert fejlsvar indeholder:

  • error — det ældre korte token. Stadig til stede ved hver fejl, så en ældre klient fortsat virker.
  • code — den samme stabile, dokumenterede fejlkode (tabellen nedenfor) under det navn, den offentlige API bruger.
  • message — en beskrivelse på én sætning af, hvad der gik galt.
  • hint — en kort beskrivelse i almindeligt sprog af, hvad der gik galt, og hvordan du retter det.
  • docs_url — et link til denne side, forankret ved afsnittet for den pågældende kode.
  • request_id — korrelerer denne HTTP-fejl med en række i dashboardets Render Logs-tabel (returneres også i X-Request-ID-svarshovedet). En flade uden noget at korrelere svarer null, men nøglen er altid til stede.

De indbyggede flader — Shopify-adminen, WooCommerce Studio, Wix-broen og demoen — svarer med den samme envelope for koderne nedenfor, så en fejl betyder det samme, uanset hvor du møder den. En modulflade kan beholde den HTTP-status, den altid har returneret for en kode (for eksempel svarer render_failed 503 på cover-eksporten og 502 på den offentlige API); koden, meddelelsen, hintet og docs-linket ændres ikke.

Læsning af et fejlsvar

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

Hvis du får et svar, du ikke forstår, er den hurtigste vej:

  1. Notér code.
  2. Tjek din URL-builder — de fleste fejl skyldes signeringsfejl, ikke problemer med kontoen.
  3. Find den præcise årsag og løsning i koden nedenfor.
  4. Åbn Render Logs i dashboardet, og filtrér efter samme error_code — hver række viser de anmodede parametre, så du kan reproducere (og bekræfte, at request_id stemmer).

Signering & godkendelse

missing_signature

Din anmodning mangler query-parametrene key og/eller s (signatur).

Ret: sørg for, at din URL indeholder både key=<api-key> og s=<hmac-signature>. Brug SDK'et eller gennemgangen af /docs/hmac-signature-guide til at bygge den.

invalid_signature

Værdien s matchede ikke det, som din HMAC-hemmelighed producerer for denne URL.

Ret: signaturen dækker alle query-parametre undtagen s, med sorterede nøgler. Ændring af en hvilken som helst parameter — herunder omarrangering, forskelle i URL-encoding eller tilføjelse af whitespace — ugyldiggør signaturen. Signer igen efter hver ændring. Bekræft, at din hemmelighed er den samme, som blev vist, da API-nøglen blev oprettet.

invalid_signature_format

Værdien s er ikke en hex-streng på 64 tegn.

Ret: signaturen skal være rå SHA-256-hex (små bogstaver a-f0-9). Hvis du base64-encoder eller afkorter outputtet, skal du bruge almindelig hex i stedet.

expired_timestamp

Det tidsstempel t, du angav, er mere end 5 minutter gammelt.

Ret: generér tidsstemplet på ny, hver gang du bygger en URL. Denne kode gælder for det legacy signerede-URL-flow; det nuværende HMAC v2-flow har intet tidsstempel.

invalid_api_key

Den key, du sendte, findes ikke.

Ret: kopiér den fulde API-nøgle fra dashboardet — det er den offentlige identifikator, der starter med sk_. Den er offentlig og sikker i URL'er; det er hemmeligheden (aldrig i URL'er), der beviser ejerskab.

missing_hmac_secret

API-nøglen har ingen HMAC-hemmelighed konfigureret.

Ret: opret en ny API-nøgle i dashboardet — HMAC-hemmeligheden genereres og vises én gang ved oprettelsen.


Parameter / input

invalid_image_url

En prop, der indeholder en URL (image, brand_logo, logo, avatar, background_image, ...), er ikke en offentlig http(s)-URL.

Rettelse: send en offentligt tilgængelig https://...-URL. Localhost, private IP-adresser og bare stier afvises for at forhindre server-side request forgery.


Abonnement

subscription_required (402)

Anmodningen ramte Dynamic API, men din konto har ikke en aktiv plan. API-adgang er kun for abonnenter: planen er adgangsbetingelsen, og den bærer samme dækning + kapabilitetstrappe, som FastOG-appsene sælger. Selve renderingerne måles ikke — der er ingen månedlig render-kvote og ingen fakturering for overforbrug.

Løsning: vælg en Dynamic API-plan i dashboardet, og opret en API-nøgle. Svaret indeholder en top_up_url, der peger på plansiden.


Render-tjeneste

store_blocked (403)

Rendering for butikken bag denne nøgle er blevet sat på pause af FastOG (for eksempel misbrug eller ukontrolleret forbrug). Caches, der allerede er gemt ved edge, kan fortsætte med at blive serveret, indtil de udløber. Kontakt support for at løse det; intet, du kan ændre i forespørgslen, vil rette dette.

render_unreachable

Render-tjenesten kunne ikke nås (kort genstartsvindue).

Løsning: prøv igen om et par sekunder. Renderingen blev ikke talt med for dette forsøg.

render_failed

Render-tjenesten returnerede en fejl for din forespørgsel.

Løsning: verificer dine template-props — lange/fejlbehæftede værdier, ikke-understøttede felter eller et utilgængeligt upstream-billede. Svaret indeholder den underliggende status. Renderingen blev ikke talt med.


Butikadmin-flader

Disse koder svarer fra Shopify-admin og WooCommerce Studio — de indlejrede editorer, som en merchant arbejder i frem for det signerede API. Flere deles med det offentlige API (invalid_image_url, render_failed, invalid_signature); de beholder den post, der er dokumenteret ovenfor.

Kode HTTP Hvad det betyder, og hvad du skal gøre
invalid_shop 422 Shopify-butikken kunne ikke identificeres. Genindlæs FastOG-appen fra din Shopify-admin, så den indlejrede forespørgsel igen bærer butikken, og prøv derefter igen.
invalid_shop_or_page 422 Butikken eller sidetypen er ukendt. Åbn FastOG-appen fra din Shopify-admin, og vælg en forside-sidetype i editoren.
invalid_store 422 WooCommerce-butikken kunne ikke identificeres. Genåbn Studio fra din WordPress-admin, så butikkens token igen præsenteres, og prøv derefter igen.
invalid_store_or_page 422 Butikken eller sidetypen er ukendt. Genåbn Studio fra din WordPress-admin, og vælg en forside-sidetype, som editoren tilbyder.
missing_api_key 422 Butikken har ingen signeringsnøgle. Fuldfør installationen af plugin'et fra din WordPress-admin, så FastOG kan udstede en signeringsnøgle til butikken.
store_ownership_unverified 403 WordPress-sitet kunne ikke verificeres. Det skal være tilgængeligt over offentlig HTTPS med REST API aktiveret.
community_is_free 422 Community-planen er gratis. Det er den gratis standardplan og kan ikke købes; vælg et betalt niveau for at opgradere.
not_installed 404 FastOG er ikke installeret for denne butik. Installer FastOG-appen fra Shopify App Store til denne butik, og åbn den derefter igen.
oauth_required 409 Butikken skal autorisere FastOG igen. Kør FastOG OAuth-installationen igen fra din Shopify-admin; den gemte tilladelse blev tilbagekaldt, eller dens scopes blev ændret.
reconnect_required 409 Shopify-forbindelsen skal genoprettes. Brug knappen Reconnect i FastOG-appen, så der udstedes et nyt access token.
token_rejected 409 Shopify udstedte et access token og afviste det derefter. Prøv reconnect én gang igen; hvis Shopify fortsat afviser det, skal du geninstallere appen.
unauthorized 401 Forespørgslen bærer ingen gyldig session for denne flade. Genindlæs FastOG-appen fra din platformsadmin, så et nyt sessionstoken vedhæftes, og prøv derefter igen.
shop_not_found 404 Butikken findes ikke længere i FastOG. Geninstaller FastOG fra din Shopify-admin for at genskabe butikkens post.
invalid_product 422 Produktreferencen er ikke gyldig. Genindlæs produktsiden, og åbn FastOG igen; det sendte produkt-id manglede eller var ikke numerisk.
invalid_product_cover 422 Produktforsidens payload er fejlbehæftet. Genindlæs editoren, og gem igen; props, style og signals skal hver være et objekt.
product_not_found 404 Produktet kunne ikke læses fra butikken. Kontroller, at produktet stadig findes og er udgivet, og genindlæs derefter editoren.
product_customization_not_on_plan 403 Tilpasning af forside pr. produkt er ikke inkluderet i denne plan. Opgrader, eller rediger den delte produktforside i stedet.
no_product_handles 422 Der blev ikke fundet nogen produkter at opdatere. Udgiv mindst ét produkt med et offentligt handle, og prøv derefter opdateringen af share-preview igen.
invalid_style 422 Style-blokken kan ikke bruges. Genindlæs editoren, og vælg farver og skrifttyper igen; én værdi kunne ikke normaliseres.
invalid_template 422 Den ønskede skabelon findes ikke i denne platforms katalog. Vælg et af de layouts, som editoren tilbyder.
invalid_preset 422 Preset-navnet er ikke et, som denne platform tilbyder. Vælg et preset på opsætningsskærmen.
invalid_set 422 Payloaden for cover-sættet mangler eller er fejlbehæftet. Genindlæs opsætningsskærmen, og vælg et sæt igen.
preset_not_applyable 422 Preset'et kan ikke anvendes på alle sidetyper. Vælg et andet preset; dette mangler en forside til mindst én sidetype.
template_not_available 422 Skabelonen findes ikke i det renderbare katalog. Vælg et layout, som vælgeren tilbyder.
template_not_available_on_shopify 422 Skabelonen er ikke tilgængelig på Shopify-butikker. Vælg et layout, som Shopify-editoren tilbyder.
template_not_available_on_woocommerce 422 Skabelonen er ikke tilgængelig på WooCommerce-butikker. Vælg et layout, som Studio tilbyder.
template_unavailable 422 Skabelonen er ikke tilgængelig for denne butik. Vælg et layout, som editoren tilbyder; det er udfaset, ukendt eller kræver mere, end butikken må tegne.
template_not_on_plan 403 Skabelonen kræver en højere plan. Skift plan, eller vælg et layout, som den nuværende plan dækker. Svaret angiver planen i requires.
template_requires_higher_plan 403 Skabelonen kræver en højere plan. Svaret angiver planen i requires.
no_rule 404 Der findes endnu ingen forside-regel for denne sidetype. Gem først en forside for denne sidetype i editoren.
cover_not_configured 404 Der er endnu ikke gemt en produktforside. Gem en produktforside, før du downloader eller deler den.
schedule_only_product 422 Planlægning af kampagner findes kun for produktforsider. Fjern tilbagedateringen, eller flyt kampagnen til produktforsiden.
not_dismissible 422 Den meddelelse kan ikke afvises. Genindlæs siden; den er allerede udfaset eller tilhører en anden butik.
unsupported_locale 422 Det UI-sprog er ikke inkluderet i denne app. Vælg et af de sprog, som svaret angiver i supported.
no_setup_sets 422 Der kunne ikke sammensættes kuraterede cover-sæt. Prøv opsætningsskærmen igen; hvis den forbliver tom, skal du kontakte support.
export_unavailable 403 Downloads er ikke inkluderet i denne plan. Opgrader til Pro eller højere for at downloade forsidefiler.
cancellation_failed 502 Annulleringen af abonnementet blev afvist. Prøv igen om et øjeblik; hvis det fortsat fejler, skal du annullere fra Shopifys faktureringsside eller kontakte support.
logo_override_on_plan 403 Tilsidesættelse af logo er ikke inkluderet i denne plan. Opgrader, eller ryd tilsidesættelsen af logoet.
invalid_logo 422 Logofilen er ikke et accepteret billede. Upload en PNG, JPEG eller WebP under størrelsesgrænsen, som vises i editoren.
invalid_brand_image 422 Brandreferencebilledet kan ikke bruges. Upload et understøttet billede under størrelsesgrænsen, eller ryd referencen og gem igen.
brand_image_too_large 422 Brandreferencebilledet er for stort. Formindsk filen, og upload den igen.
brand_colors_too_many 422 Der blev angivet mere end tre brandfarver. Send højst tre hex-farver.
upload_failed 500 Den uploadede fil kunne ikke gemmes. Prøv igen; hvis det fortsat fejler, skal du kontakte support — asset-lageret returnerede ingen offentlig URL.
attachment_upload_failed 500 Supportvedhæftningen kunne ikke gemmes. Send meddelelsen uden vedhæftningen, og send derefter filen til support via e-mail.
invalid_webhook 401 Butikkens webhook-signatur kunne ikke verificeres. Kontroller, at webhook-hemmeligheden i dine FastOG-indstillinger i WordPress matcher den, som FastOG udstedte.
not_found 404 Det endpoint findes ikke længere. Genåbn Studio fra din WordPress-admin.
meta_refresh_unavailable 503 Opdatering af share-preview er ikke konfigureret. Del linket igen fra Facebook i stedet.
theme_write_disabled 409 Tema-redigering er ikke aktiveret for denne app. Brug temaets app-embed i stedet for tema-filrettelsen.
scope_required 403 FastOG mangler en Shopify-tilladelse. Godkend de ønskede scopes ved hjælp af consent_url i svaret, og prøv derefter rettelsen igen.

Wix-bro

Wix-broen signeres af Wix-appen, ikke af en merchantsession, så dens fejl er rettet til app-udvikleren. Hvert svar bærer stadig code og request_id; broens request-id er det fra den signerede envelope.

Kode HTTP Hvad det betyder, og hvad du skal gøre
invalid_bridge_signature 401 Wix-broens signatur kunne ikke verificeres. Generér requesten igen med den delte hemmelighed, den præcise sti og et tidsstempel, der er under fem minutter gammelt.
invalid_bridge_body 400 Broens envelope-body er malformed. Send body som et JSON-objekt, og kod hvert tal i det som en streng, så den kanoniske signatur matcher.
replayed_bridge_request 401 Den bro-request er allerede brugt. Generér et nyt request_id for hvert muterende kald.
wix_site_not_installed 403 FastOG er ikke installeret på dette Wix-site. Installér FastOG-appen på sitet, og åbn det derefter igen.
wix_site_not_provisioned 422 Wix-sitet har endnu ingen signeringsoplysninger. Geninstallér FastOG-appen, så sitet bliver provisioneret med en API-nøgle.
invalid_page_type 422 Sidetypen er ikke en, som FastOG dækker på Wix. Send en af de sidetyper, som Studio tilbyder.
rule_not_found 404 Der findes ingen regel med det id. Opdatér listen; reglen er blevet slettet eller tilhører et andet site.
invalid_target_id 422 Wix-mål-id'et er ikke gyldigt for denne sidetype. Send det id, som Wix-appen leverer til den pågældende sidetype.
invalid_preview 422 Preview-payloaden er malformed. Læs details-objektet for at finde det felt, der fejler.
invalid_rule 422 Cover-reglens payload er malformed. Læs details-objektet; template er påkrævet, og de valgfrie blocks skal være objekter.
invalid_sync 422 Sync-payloaden er malformed. Læs details-objektet; target_type og target_id skal stemme overens.
invalid_regenerate_url 422 URL'en, der skal regenereres, mangler. Send sidens URL i url.
invalid_regenerate_host 422 URL'en tilhører ikke FastOG-værten. Send en cover-URL fra fastog.com.
ai_presets_unsupported 422 AI-designede cover-sæt genereres ikke længere. Vælg et af de kuraterede looks i stedet.
original_tags_required 422 De oprindelige metadata-tags er påkrævet. Send original_tags (eller current_tags), så en afinstallation kan gendanne sitets metadata.
invalid_restored 422 Payloaden med gendannede nøgler er malformed. Send restored som et array af metadata-nøgler.
invalid_seo_target 422 SEO-måltypen er ukendt. Brug site, pattern eller item i stien.
invalid_seo_payload 422 SEO-metadata-payloaden er malformed. Send target_id, current_tags og fastog_url som en absolut http(s)-URL.
sync_failed 500 Metadata-synkroniseringen til Wix mislykkedes. Prøv igen; hvis det fortsat fejler, så tjek, at sitet kan nås, og at appen stadig er installeret.
invalid_tier 422 Den plan er ikke en, som FastOG sælger på Wix. Send starter, pro eller scale som tier.

Demooverflade

Demoen er den ejer-only salgskonsol, ikke et merchant-endpoint.

Kode HTTP Hvad det betyder, og hvad du skal gøre
url_required 422 Der blev ikke sendt nogen URL. Indsæt butikkens eller produktets link, før du læser kortet.
unreadable_url 422 Den side kunne ikke læses. Kontroller, at linket er offentligt og komplet; en side bag et login kan ikke læses.
no_api_key 422 Der er ingen API-nøgle tilgængelig til at signere covers. Opret en API-nøgle (eller indtast en gyldig en); svaret linker til API-nøglesiden.
no_presets 500 Der er ikke konfigureret nogen cover-presets. Konfigurer mindst ét preset på serveren.

Scoped-rule editor-koder

Scoped-rule-editorerne (Shopify admin og WooCommerce Studio) oversætter selv disse tokens til forhandlerens eget sprog, så deres svar indeholder error og code, men ingen hint — en ekstra engelsk beskrivelse ville blot afvige fra den lokaliserede, som forhandleren faktisk 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.


Stadig problemer?

  • Åbn Render Logs-siden i dashboardet — hvert resultat (succes + afvisning) er listet med sin error_code, HTTP-status og de anmodede parametre.
  • Kør php artisan og:diagnose på en signeret URL for at gennemgå hele pipelinen og se, hvilket trin der fejler.
  • Tjek dokumentationen i sidepanelet for det framework, du bruger (Next.js, Express, SvelteKit, ...).

Prøv det gratis – ingen tilmelding nødvendig

Forhåndsvis og test dynamiske OG-billeder på få sekunder.

Åbn den gratis OG-billedtester

A BeCaSimulations site