Argomento

Errori API — Cosa significa ogni codice e come risolverlo

FastOG restituisce codici di errore leggibili dalla macchina quando una richiesta fallisce — il rendering di un'immagine OG firmata, o una chiamata a una delle superfici di amministrazione integrate nel prodotto. Ogni risposta di errore include:

  • error — il vecchio token breve. È ancora presente su ogni errore, così un client più vecchio continua a funzionare.
  • code — lo stesso codice di errore stabile e documentato (tabella sotto), con il nome usato dall'API pubblica.
  • message — una descrizione in una frase di cosa è andato storto.
  • hint — una breve descrizione in linguaggio semplice di cosa è andato storto e di come risolverlo.
  • docs_url — un link a questa pagina, ancorato alla sezione di quel codice.
  • request_id — correla questo errore HTTP a una riga nella tabella Render Logs della dashboard (restituito anche nell'header di risposta X-Request-ID). Una superficie che non ha nulla da correlare risponde null, ma la chiave è sempre presente.

Le superfici integrate nel prodotto — l'admin di Shopify, il WooCommerce Studio, il bridge Wix e la demo — rispondono con lo stesso envelope per i codici qui sotto, quindi un errore significa la stessa cosa ovunque lo incontri. Una superficie di un modulo può mantenere lo status HTTP che ha sempre restituito per un codice (ad esempio render_failed risponde 503 sull'export della copertina e 502 sull'API pubblica); il codice, il messaggio, il suggerimento e il link alla documentazione non cambiano.

Leggere una risposta di errore

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

Se ricevi una risposta che non capisci, la via più rapida è:

  1. Annota il code.
  2. Controlla il tuo URL builder — la maggior parte dei fallimenti sono bug di firma, non problemi di account.
  3. Confronta il codice qui sotto per la causa esatta e la correzione.
  4. Nella dashboard, apri Render Logs e filtra per lo stesso error_code — ogni riga mostra i parametri richiesti così puoi riprodurre (e confermare che request_id corrisponda).

Firma e autenticazione

missing_signature

Alla tua richiesta mancano i parametri di query key e/o s (firma).

Correzione: assicurati che il tuo URL includa sia key=<api-key> che s=<hmac-signature>. Usa l'SDK o la guida /docs/hmac-signature-guide per costruirlo.

invalid_signature

Il valore s non corrisponde a quello prodotto dal tuo HMAC secret per questo URL.

Correzione: la firma copre tutti i parametri di query tranne s, con le chiavi ordinate. Modificare qualsiasi parametro — incluso il riordino, differenze nella codifica URL o l'aggiunta di spazi — invalida la firma. Firma di nuovo dopo ogni modifica. Verifica che il tuo secret sia lo stesso mostrato al momento della creazione della API key.

invalid_signature_format

Il valore s non è una stringa esadecimale di 64 caratteri.

Correzione: la firma deve essere l'hex grezzo dello SHA-256 (minuscolo a-f0-9). Se stai codificando in base64 o troncando l'output, usa l'hex semplice.

expired_timestamp

Il timestamp t che hai fornito ha più di 5 minuti.

Correzione: rigenera il timestamp ogni volta che costruisci un URL. Questo codice si applica al flusso legacy degli URL firmati; il flusso HMAC v2 attuale non ha timestamp.

invalid_api_key

La key che hai passato non esiste.

Correzione: copia la API key completa dalla dashboard — è l'identificatore pubblico che inizia con sk_. È pubblica e sicura negli URL; il secret (mai negli URL) è ciò che prova il possesso.

missing_hmac_secret

La API key non ha un HMAC secret configurato.

Correzione: crea una nuova API key nella dashboard — l'HMAC secret viene generato e mostrato una sola volta alla creazione.


Parametro / input

invalid_image_url

Una prop che contiene un URL (image, brand_logo, logo, avatar, background_image, ...) non è un URL http(s) pubblico.

Correzione: passa un URL https://... recuperabile pubblicamente. Localhost, IP privati e percorsi senza host vengono rifiutati per prevenire il server-side request forgery.


Abbonamento

subscription_required (402)

La richiesta ha raggiunto la Dynamic API ma il tuo account non ha un piano attivo. L'accesso all'API è solo tramite abbonamento: il piano è il requisito, e offre la stessa copertura e la stessa scala di funzionalità vendute dalle app FastOG. I render stessi non sono misurati: non esiste una quota mensile di render né una fatturazione per eccedenza.

Correzione: scegli un piano Dynamic API nella dashboard e crea una chiave API. La risposta include un top_up_url che punta alla pagina dei piani.


Servizio di rendering

store_blocked (403)

Il rendering per lo store associato a questa chiave è stato sospeso da FastOG (ad esempio per abuso o utilizzo eccessivo). Le copie già in cache all'edge possono continuare a essere servite fino alla scadenza. Contatta il supporto per risolvere la situazione; nessuna modifica che puoi apportare alla richiesta risolverà il problema.

render_unreachable

Non è stato possibile raggiungere il servizio di rendering (breve finestra di riavvio).

Correzione: riprova tra qualche secondo. Il rendering non è stato conteggiato per questo tentativo.

render_failed

Il servizio di rendering ha restituito un errore per la tua richiesta.

Correzione: verifica le props del tuo template — valori lunghi o malformati, campi non supportati o un'immagine upstream non raggiungibile. La risposta include il status sottostante. Il rendering non è stato conteggiato.


Superfici di amministrazione dello store

Questi codici rispondono dall'admin di Shopify e da WooCommerce Studio — gli editor integrati in cui lavora un merchant piuttosto che l'API firmata. Diversi sono condivisi con l'API pubblica (invalid_image_url, render_failed, invalid_signature); per quelli resta valida la voce documentata sopra.

Codice HTTP Cosa significa e cosa fare
invalid_shop 422 Non è stato possibile identificare lo shop Shopify. Ricarica l'app FastOG dal tuo admin Shopify in modo che la richiesta incorporata porti di nuovo lo shop, poi riprova.
invalid_shop_or_page 422 Lo shop o il tipo di pagina non sono riconosciuti. Apri l'app FastOG dal tuo admin Shopify e scegli un tipo di pagina di copertina dall'editor.
invalid_store 422 Non è stato possibile identificare lo store WooCommerce. Riapri lo Studio dal tuo admin WordPress in modo che il token dello store venga presentato di nuovo, poi riprova.
invalid_store_or_page 422 Lo store o il tipo di pagina non sono riconosciuti. Riapri lo Studio dal tuo admin WordPress e scegli un tipo di pagina di copertina tra quelli offerti dall'editor.
missing_api_key 422 Lo store non ha una chiave di firma. Completa l'installazione del plugin dal tuo admin WordPress in modo che FastOG possa emettere la chiave di firma per lo store.
store_ownership_unverified 403 Non è stato possibile verificare il sito WordPress. Deve essere raggiungibile tramite HTTPS pubblico con la sua REST API abilitata.
community_is_free 422 Il piano Community è gratuito. È il piano predefinito gratuito e non è acquistabile; scegli un livello a pagamento per eseguire l'upgrade.
not_installed 404 FastOG non è installato per questo shop. Installa l'app FastOG dallo Shopify App Store per questo shop, poi riaprila.
oauth_required 409 Lo shop deve autorizzare di nuovo FastOG. Esegui di nuovo l'installazione OAuth di FastOG dal tuo admin Shopify; la concessione memorizzata è stata revocata o i suoi scope sono cambiati.
reconnect_required 409 La connessione a Shopify deve essere ristabilita. Usa il pulsante Riconnetti nell'app FastOG in modo che venga emesso un nuovo access token.
token_rejected 409 Shopify ha emesso un access token e poi l'ha rifiutato. Riprova la riconnessione una volta; se Shopify continua a rifiutarlo, reinstalla l'app.
unauthorized 401 La richiesta non porta una sessione valida per questa superficie. Ricarica l'app FastOG dall'admin della tua piattaforma in modo che venga allegato un nuovo token di sessione, poi riprova.
shop_not_found 404 Lo shop non esiste più in FastOG. Reinstalla FastOG dal tuo admin Shopify per ricreare il record dello shop.
invalid_product 422 Il riferimento al prodotto non è valido. Ricarica la pagina del prodotto e riapri FastOG; l'id del prodotto inviato era mancante o non numerico.
invalid_product_cover 422 Il payload della copertina del prodotto è malformato. Ricarica l'editor e salva di nuovo; props, style e signals devono essere ciascuno un oggetto.
product_not_found 404 Non è stato possibile leggere il prodotto dallo store. Verifica che il prodotto esista ancora e sia pubblicato, poi ricarica l'editor.
product_customization_not_on_plan 403 La personalizzazione della copertina per singolo prodotto non è inclusa in questo piano. Esegui l'upgrade oppure modifica la copertina prodotto condivisa.
no_product_handles 422 Non sono stati trovati prodotti da aggiornare. Pubblica almeno un prodotto con un handle pubblico, poi riprova l'aggiornamento dell'anteprima di condivisione.
invalid_style 422 Il blocco di stile non è utilizzabile. Ricarica l'editor e scegli di nuovo colori e font; un valore non è stato normalizzato.
invalid_template 422 Il template richiesto non è nel catalogo di questa piattaforma. Scegli uno dei layout offerti dall'editor.
invalid_preset 422 Il nome del preset non è tra quelli offerti da questa piattaforma. Scegli un preset dalla schermata di configurazione.
invalid_set 422 Il payload del set di copertine è mancante o malformato. Ricarica la schermata di configurazione e scegli di nuovo un set.
preset_not_applyable 422 Il preset non può essere applicato a ogni tipo di pagina. Scegli un altro preset; a questo manca una copertina per almeno un tipo di pagina.
template_not_available 422 Il template non è nel catalogo renderizzabile. Scegli un layout offerto dal selettore.
template_not_available_on_shopify 422 Il template non è disponibile sugli store Shopify. Scegli un layout offerto dall'editor Shopify.
template_not_available_on_woocommerce 422 Il template non è disponibile sugli store WooCommerce. Scegli un layout offerto dallo Studio.
template_unavailable 422 Il template non è disponibile per questo store. Scegli un layout offerto dall'editor; è ritirato, sconosciuto o superiore a ciò che lo store può disegnare.
template_not_on_plan 403 Il template richiede un piano superiore. Cambia piano oppure scegli un layout coperto dal piano attuale. La risposta indica il piano in requires.
template_requires_higher_plan 403 Il template richiede un piano superiore. La risposta indica il piano in requires.
no_rule 404 Non esiste ancora una regola di copertina per questo tipo di pagina. Salva prima una copertina per questo tipo di pagina nell'editor.
cover_not_configured 404 Non è stata ancora salvata alcuna copertina prodotto. Salva una copertina prodotto prima di scaricarla o condividerla.
schedule_only_product 422 La pianificazione delle campagne esiste solo per le copertine prodotto. Rimuovi la data di ripristino oppure sposta la campagna sulla copertina prodotto.
not_dismissible 422 Quell'annuncio non può essere ignorato. Ricarica la pagina; è già stato ritirato o appartiene a un altro shop.
unsupported_locale 422 Quella lingua dell'interfaccia non è inclusa in questa app. Scegli una delle lingue elencate dalla risposta in supported.
no_setup_sets 422 Non è stato possibile assemblare set di copertine curati. Riprova la schermata di configurazione; se resta vuota, contatta l'assistenza.
export_unavailable 403 I download non sono inclusi in questo piano. Esegui l'upgrade a Pro o superiore per scaricare i file delle copertine.
cancellation_failed 502 La cancellazione dell'abbonamento è stata rifiutata. Riprova tra un momento; se continua a fallire, cancella dalla pagina di fatturazione Shopify o contatta l'assistenza.
logo_override_on_plan 403 L'override del logo non è incluso in questo piano. Esegui l'upgrade oppure rimuovi l'override del logo.
invalid_logo 422 Il file del logo non è un'immagine accettata. Carica un PNG, JPEG o WebP entro il limite di dimensione mostrato nell'editor.
invalid_brand_image 422 L'immagine di riferimento del brand non è utilizzabile. Carica un'immagine supportata entro il limite di dimensione, oppure rimuovi il riferimento e salva di nuovo.
brand_image_too_large 422 L'immagine di riferimento del brand è troppo grande. Riduci il file e caricalo di nuovo.
brand_colors_too_many 422 Sono stati forniti più di tre colori del brand. Invia al massimo tre colori esadecimali.
upload_failed 500 Non è stato possibile memorizzare il file caricato. Riprova; se continua a fallire, contatta l'assistenza — l'asset store non ha restituito alcun URL pubblico.
attachment_upload_failed 500 Non è stato possibile memorizzare l'allegato del supporto. Invia il messaggio senza l'allegato, poi invia il file via email al supporto.
invalid_webhook 401 La firma del webhook dello store non è stata verificata. Controlla che il segreto del webhook nelle tue impostazioni FastOG di WordPress corrisponda a quello emesso da FastOG.
not_found 404 Quell'endpoint non esiste più. Riapri lo Studio dal tuo admin WordPress.
meta_refresh_unavailable 503 L'aggiornamento dell'anteprima di condivisione non è configurato. Condividi di nuovo il link da Facebook.
theme_write_disabled 409 La modifica del tema non è abilitata per questa app. Usa l'embed dell'app nel tema invece della correzione dei file del tema.
scope_required 403 A FastOG manca un'autorizzazione Shopify. Approva gli scope richiesti usando consent_url nella risposta, poi riprova la correzione.

Bridge Wix

Il bridge Wix è firmato dall'app Wix, non da una sessione del merchant, quindi i suoi errori sono indirizzati allo sviluppatore dell'app. Ogni risposta porta comunque code e request_id; l'id della richiesta del bridge è quello dell'envelope firmato.

Codice HTTP Cosa significa e cosa fare
invalid_bridge_signature 401 La firma del bridge Wix non è stata verificata. Rigenera la richiesta con il secret condiviso, il path esatto e un timestamp più recente di cinque minuti.
invalid_bridge_body 400 Il body dell'envelope del bridge è malformato. Invia body come oggetto JSON e codifica ogni numero al suo interno come stringa, così che la firma canonica corrisponda.
replayed_bridge_request 401 Quella richiesta del bridge è già stata usata. Genera un nuovo request_id per ogni chiamata che modifica lo stato.
wix_site_not_installed 403 FastOG non è installato su questo sito Wix. Installa l'app FastOG sul sito, poi riaprilo.
wix_site_not_provisioned 422 Il sito Wix non ha ancora credenziali di firma. Reinstalla l'app FastOG in modo che il sito venga provisionato con una API key.
invalid_page_type 422 Il tipo di pagina non è tra quelli coperti da FastOG su Wix. Invia uno dei tipi di pagina offerti dallo Studio.
rule_not_found 404 Non esiste nessuna regola con quell'id. Aggiorna la lista; la regola è stata eliminata o appartiene a un altro sito.
invalid_target_id 422 L'id del target Wix non è valido per questo tipo di pagina. Invia l'id che l'app Wix fornisce per quel tipo di pagina.
invalid_preview 422 Il payload di anteprima è malformato. Leggi l'oggetto details per il campo che ha fallito.
invalid_rule 422 Il payload della regola di copertina è malformato. Leggi l'oggetto details; template è obbligatorio e i blocchi opzionali devono essere oggetti.
invalid_sync 422 Il payload di sincronizzazione è malformato. Leggi l'oggetto details; target_type e target_id devono coincidere.
invalid_regenerate_url 422 Manca l'URL da rigenerare. Invia l'URL della pagina in url.
invalid_regenerate_host 422 L'URL non appartiene all'host FastOG. Invia un URL di copertina fastog.com.
ai_presets_unsupported 422 I set di copertine progettati dall'AI non vengono più generati. Scegli uno dei look curati.
original_tags_required 422 I tag dei metadati originali sono obbligatori. Invia original_tags (o current_tags) così che una disinstallazione possa ripristinare i metadati del sito.
invalid_restored 422 Il payload delle chiavi ripristinate è malformato. Invia restored come array di chiavi di metadati.
invalid_seo_target 422 Il tipo di target SEO è sconosciuto. Usa site, pattern o item nel path.
invalid_seo_payload 422 Il payload dei metadati SEO è malformato. Invia target_id, current_tags e fastog_url come URL http(s) assoluto.
sync_failed 500 La sincronizzazione dei metadati verso Wix è fallita. Riprova; se continua a fallire, verifica che il sito sia raggiungibile e che l'app sia ancora installata.
invalid_tier 422 Quel piano non è tra quelli che FastOG vende su Wix. Invia starter, pro o scale come tier.

Superficie della demo

La demo è la console di vendita riservata al proprietario, non un endpoint per i merchant.

Codice HTTP Cosa significa e cosa fare
url_required 422 Non è stata inviata alcuna URL. Incolla il link del negozio o del prodotto prima di leggere la card.
unreadable_url 422 Impossibile leggere quella pagina. Verifica che il link sia pubblico e completo; una pagina dietro un login non può essere letta.
no_api_key 422 Nessuna API key disponibile per firmare le copertine. Crea una API key (oppure inseriscine una valida); la risposta rimanda alla pagina delle API key.
no_presets 500 Nessun preset di copertina configurato. Configura almeno un preset sul server.

Codici dell'editor delle regole con ambito

Gli editor delle regole con ambito (admin di Shopify e WooCommerce Studio) traducono questi token autonomamente, nella lingua del merchant, quindi le loro risposte contengono error e code ma non hint — una seconda descrizione in inglese finirebbe solo per divergere da quella localizzata che il merchant vede effettivamente:

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.


Ancora bloccato?

  • Apri la pagina Render Logs della dashboard — ogni esito (successo + rifiuto) è elencato con il suo error_code, lo stato HTTP e i parametri richiesti.
  • Esegui php artisan og:diagnose su un URL firmato per percorrere l'intera pipeline e vedere quale fase fallisce.
  • Consulta la documentazione nella barra laterale per il framework che stai usando (Next.js, Express, SvelteKit, ...).

Provalo gratis — nessuna registrazione richiesta

Anteprima e test delle immagini OG dinamiche in pochi secondi.

Apri il tester gratuito di immagini OG

A BeCaSimulations site