API-Fehler — Was die einzelnen Codes bedeuten und wie Sie sie beheben
FastOG gibt maschinenlesbare Fehlercodes zurück, wenn eine Anfrage fehlschlägt — beim Rendern eines signierten OG-Bilds oder bei einem Aufruf einer der produktinternen Admin-Oberflächen. Jede Fehlerantwort enthält:
error— das alte kurze Token. Es ist bei jedem Fehler weiterhin vorhanden, damit ein älterer Client weiter funktioniert.code— denselben stabilen, dokumentierten Fehlercode (Tabelle unten), unter dem Namen, den die öffentliche API verwendet.message— eine einzeilige Beschreibung dessen, was schiefgelaufen ist.hint— eine kurze, in einfacher Sprache gehaltene Beschreibung dessen, was schiefgelaufen ist und wie Sie es beheben.docs_url— einen Link auf diese Seite, verankert beim Abschnitt für diesen Code.request_id— ordnet diesen HTTP-Fehler einer Zeile in der Tabelle Render Logs im Dashboard zu (wird auch im Antwort-HeaderX-Request-IDzurückgegeben). Eine Oberfläche ohne Zuordnungsmöglichkeit antwortet mitnull, aber der Schlüssel ist immer vorhanden.
Die produktinternen Oberflächen — das Shopify-Admin, das WooCommerce Studio, die Wix-Bridge und die Demo — antworten
für die unten aufgeführten Codes mit demselben Envelope, sodass ein Fehler überall dasselbe bedeutet, wo Sie ihm begegnen. Eine
Modul-Oberfläche kann den HTTP-Status beibehalten, den sie für einen Code schon immer zurückgegeben hat (zum Beispiel antwortet render_failed
beim Cover-Export mit 503 und bei der öffentlichen API mit 502); Code, Meldung, Hinweis und Docs-Link ändern sich nicht.
Eine Fehlerantwort lesen
{
"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-..."
}
Wenn Sie eine Antwort erhalten, die Sie nicht verstehen, ist der schnellste Weg:
- Notieren Sie den
code. - Prüfen Sie Ihren URL-Builder — die meisten Fehler sind Signing-Bugs, keine Konto-Probleme.
- Ordnen Sie den Code unten der genauen Ursache und Lösung zu.
- Öffnen Sie im Dashboard Render Logs und filtern Sie nach demselben
error_code— jede Zeile zeigt die angeforderten Parameter, sodass Sie den Fehler reproduzieren (und bestätigen können, dassrequest_idübereinstimmt).
Signieren & Authentifizierung
missing_signature
In Ihrer Anfrage fehlen die Query-Parameter key und/oder s (Signatur).
Behebung: Stellen Sie sicher, dass Ihre URL sowohl key=<api-key> als auch s=<hmac-signature> enthält. Verwenden Sie das SDK oder die /docs/hmac-signature-guide-Anleitung, um sie zu erstellen.
invalid_signature
Der Wert von s stimmte nicht mit dem überein, was Ihr HMAC-Secret für diese URL erzeugt.
Behebung: Die Signatur umfasst jeden Query-Parameter außer s, mit sortierten Schlüsseln. Jede Änderung an einem Parameter – einschließlich Umordnen, Unterschiede bei der URL-Kodierung oder hinzugefügter Leerzeichen – macht die Signatur ungültig. Signieren Sie nach jeder Änderung erneut. Vergewissern Sie sich, dass Ihr Secret dasselbe ist, das bei der Erstellung des API-Schlüssels angezeigt wurde.
invalid_signature_format
Der Wert von s ist keine 64-stellige Hex-Zeichenkette.
Behebung: Die Signatur muss rohes SHA-256-Hex sein (Kleinbuchstaben a-f0-9). Wenn Sie die Ausgabe base64-kodieren oder kürzen, verwenden Sie stattdessen reines Hex.
expired_timestamp
Der von Ihnen übergebene t-Zeitstempel ist älter als 5 Minuten.
Behebung: Erzeugen Sie den Zeitstempel jedes Mal neu, wenn Sie eine URL erstellen. Dieser Code gilt für den veralteten Signed-URL-Ablauf; der aktuelle HMAC-v2-Ablauf hat keinen Zeitstempel.
invalid_api_key
Der von Ihnen übergebene key existiert nicht.
Behebung: Kopieren Sie den vollständigen API-Schlüssel aus dem Dashboard – er ist die öffentliche Kennung, die mit sk_ beginnt. Er ist öffentlich und in URLs unbedenklich; das Secret (niemals in URLs) ist das, was den Besitz nachweist.
missing_hmac_secret
Für den API-Schlüssel ist kein HMAC-Secret konfiguriert.
Behebung: Erstellen Sie im Dashboard einen neuen API-Schlüssel – das HMAC-Secret wird bei der Erstellung generiert und einmalig angezeigt.
Parameter / Eingabe
invalid_image_url
Eine Prop mit URL (image, brand_logo, logo, avatar, background_image, ...) ist keine öffentliche http(s)-URL.
Behebung: Übergeben Sie eine öffentlich abrufbare https://...-URL. Localhost, private IPs und reine Pfade werden abgelehnt, um Server-Side Request Forgery zu verhindern.
Abonnement
subscription_required (402)
Die Anfrage hat die Dynamic API erreicht, aber Ihr Konto hat keinen aktiven Tarif. Der API-Zugriff ist nur mit Abonnement möglich: Der Tarif ist die Voraussetzung, und er umfasst dieselbe Abdeckungs- und Funktionsstufen wie die FastOG-Apps. Die Renders selbst werden nicht abgerechnet — es gibt kein monatliches Render-Kontingent und keine Abrechnung für Überschreitungen.
Lösung: Wählen Sie im Dashboard einen Dynamic-API-Tarif und erstellen Sie einen API-Schlüssel. Die Antwort enthält einen top_up_url, der auf die Tarifseite verweist.
Render-Dienst
store_blocked (403)
Das Rendering für den Store hinter diesem Schlüssel wurde von FastOG pausiert (zum Beispiel wegen Missbrauchs oder unkontrollierter Nutzung). Bereits am Edge zwischengespeicherte Cover können weiter ausgeliefert werden, bis sie ablaufen. Wenden Sie sich an den Support, um das Problem zu lösen; nichts, was Sie in der Anfrage ändern können, behebt dies.
render_unreachable
Der Render-Dienst war nicht erreichbar (kurzes Neustartfenster).
Behebung: Versuchen Sie es in einigen Sekunden erneut. Der Render wurde für diesen Versuch nicht gezählt.
render_failed
Der Render-Dienst hat für Ihre Anfrage einen Fehler zurückgegeben.
Behebung: Überprüfen Sie Ihre Template-Props — zu lange oder fehlerhafte Werte, nicht unterstützte Felder oder ein nicht erreichbares vorgelagertes Bild. Die Antwort enthält den zugrunde liegenden status. Der Render wurde nicht gezählt.
Store-Admin-Oberflächen
Diese Codes antworten aus dem Shopify-Admin und dem WooCommerce Studio — den eingebetteten Editoren, in denen ein Händler arbeitet, statt aus der signierten API. Mehrere werden mit der öffentlichen API geteilt (invalid_image_url, render_failed, invalid_signature); für diese bleibt der oben dokumentierte Eintrag bestehen.
| Code | HTTP | Bedeutung und Vorgehen |
|---|---|---|
invalid_shop |
422 | Der Shopify-Shop konnte nicht identifiziert werden. Laden Sie die FastOG-App in Ihrem Shopify-Admin erneut, damit die eingebettete Anfrage den Shop wieder mitführt, und versuchen Sie es dann erneut. |
invalid_shop_or_page |
422 | Der Shop oder der Seitentyp ist unbekannt. Öffnen Sie die FastOG-App in Ihrem Shopify-Admin und wählen Sie im Editor einen Cover-Seitentyp aus. |
invalid_store |
422 | Der WooCommerce-Shop konnte nicht identifiziert werden. Öffnen Sie das Studio in Ihrem WordPress-Admin erneut, damit das Shop-Token wieder übermittelt wird, und versuchen Sie es dann erneut. |
invalid_store_or_page |
422 | Der Shop oder der Seitentyp ist unbekannt. Öffnen Sie das Studio in Ihrem WordPress-Admin erneut und wählen Sie einen Cover-Seitentyp aus, den der Editor anbietet. |
missing_api_key |
422 | Der Shop hat keinen Signaturschlüssel. Schließen Sie die Installation des Plugins in Ihrem WordPress-Admin ab, damit FastOG dem Shop seinen Signaturschlüssel ausstellen kann. |
store_ownership_unverified |
403 | Die WordPress-Website konnte nicht verifiziert werden. Sie muss über öffentliches HTTPS erreichbar sein und ihre REST API aktiviert haben. |
community_is_free |
422 | Der Community-Plan ist kostenlos. Er ist der kostenlose Standardplan und nicht käuflich; wählen Sie zum Upgrade einen kostenpflichtigen Tarif. |
not_installed |
404 | FastOG ist für diesen Shop nicht installiert. Installieren Sie die FastOG-App aus dem Shopify App Store für diesen Shop und öffnen Sie sie dann erneut. |
oauth_required |
409 | Der Shop muss FastOG erneut autorisieren. Führen Sie die FastOG-OAuth-Installation in Ihrem Shopify-Admin erneut aus; die gespeicherte Berechtigung wurde widerrufen oder ihre Scopes haben sich geändert. |
reconnect_required |
409 | Die Shopify-Verbindung muss neu hergestellt werden. Verwenden Sie die Schaltfläche „Erneut verbinden“ in der FastOG-App, damit ein neues Zugriffstoken ausgestellt wird. |
token_rejected |
409 | Shopify hat ein Zugriffstoken ausgestellt und es dann abgelehnt. Wiederholen Sie das erneute Verbinden einmal; wenn Shopify es weiterhin ablehnt, installieren Sie die App neu. |
unauthorized |
401 | Die Anfrage enthält keine gültige Sitzung für diese Oberfläche. Laden Sie die FastOG-App in Ihrem Plattform-Admin erneut, damit ein neues Sitzungstoken angehängt wird, und versuchen Sie es dann erneut. |
shop_not_found |
404 | Der Shop existiert nicht mehr in FastOG. Installieren Sie FastOG in Ihrem Shopify-Admin neu, um den Shop-Datensatz neu anzulegen. |
invalid_product |
422 | Die Produktreferenz ist ungültig. Laden Sie die Produktseite neu und öffnen Sie FastOG erneut; die gesendete Produkt-ID fehlte oder war nicht numerisch. |
invalid_product_cover |
422 | Die Produkt-Cover-Nutzlast ist fehlerhaft. Laden Sie den Editor neu und speichern Sie erneut; props, style und signals müssen jeweils ein Objekt sein. |
product_not_found |
404 | Das Produkt konnte nicht aus dem Shop gelesen werden. Prüfen Sie, ob das Produkt noch existiert und veröffentlicht ist, und laden Sie dann den Editor neu. |
product_customization_not_on_plan |
403 | Die produktspezifische Cover-Anpassung ist in diesem Plan nicht enthalten. Führen Sie ein Upgrade durch oder bearbeiten Sie stattdessen das gemeinsame Produkt-Cover. |
no_product_handles |
422 | Es wurden keine Produkte zum Aktualisieren gefunden. Veröffentlichen Sie mindestens ein Produkt mit einem öffentlichen Handle und versuchen Sie dann die Aktualisierung der Share-Vorschau erneut. |
invalid_style |
422 | Der Style-Block ist nicht verwendbar. Laden Sie den Editor neu und wählen Sie Farben und Schriftarten erneut aus; ein Wert konnte nicht normalisiert werden. |
invalid_template |
422 | Das angeforderte Template ist nicht im Katalog dieser Plattform enthalten. Wählen Sie eines der Layouts, die der Editor anbietet. |
invalid_preset |
422 | Der Preset-Name ist keiner, den diese Plattform anbietet. Wählen Sie ein Preset im Einrichtungsbildschirm aus. |
invalid_set |
422 | Die Cover-Set-Nutzlast fehlt oder ist fehlerhaft. Laden Sie den Einrichtungsbildschirm neu und wählen Sie erneut ein Set aus. |
preset_not_applyable |
422 | Das Preset kann nicht auf jeden Seitentyp angewendet werden. Wählen Sie ein anderes Preset; diesem fehlt ein Cover für mindestens einen Seitentyp. |
template_not_available |
422 | Das Template ist nicht im renderbaren Katalog enthalten. Wählen Sie ein Layout, das die Auswahl anbietet. |
template_not_available_on_shopify |
422 | Das Template ist für Shopify-Shops nicht verfügbar. Wählen Sie ein Layout, das der Shopify-Editor anbietet. |
template_not_available_on_woocommerce |
422 | Das Template ist für WooCommerce-Shops nicht verfügbar. Wählen Sie ein Layout, das das Studio anbietet. |
template_unavailable |
422 | Das Template ist für diesen Shop nicht verfügbar. Wählen Sie ein Layout, das der Editor anbietet; es ist ausgemustert, unbekannt oder übersteigt das, was der Shop zeichnen darf. |
template_not_on_plan |
403 | Das Template erfordert einen höheren Plan. Wechseln Sie den Plan oder wählen Sie ein Layout, das der aktuelle Plan abdeckt. Die Antwort nennt den Plan in requires. |
template_requires_higher_plan |
403 | Das Template erfordert einen höheren Plan. Die Antwort nennt den Plan in requires. |
no_rule |
404 | Für diesen Seitentyp gibt es noch keine Cover-Regel. Speichern Sie zuerst ein Cover für diesen Seitentyp im Editor. |
cover_not_configured |
404 | Es wurde noch kein Produkt-Cover gespeichert. Speichern Sie ein Produkt-Cover, bevor Sie es herunterladen oder teilen. |
schedule_only_product |
422 | Die Kampagnenplanung gibt es nur für Produkt-Cover. Entfernen Sie das Rückgabedatum oder verschieben Sie die Kampagne auf das Produkt-Cover. |
not_dismissible |
422 | Diese Ankündigung kann nicht ausgeblendet werden. Laden Sie die Seite neu; sie wurde bereits ausgemustert oder gehört zu einem anderen Shop. |
unsupported_locale |
422 | Diese UI-Sprache ist für diese App nicht enthalten. Wählen Sie eine der Sprachen, die die Antwort in supported auflistet. |
no_setup_sets |
422 | Es konnten keine kuratierten Cover-Sets zusammengestellt werden. Versuchen Sie es im Einrichtungsbildschirm erneut; wenn er leer bleibt, wenden Sie sich an den Support. |
export_unavailable |
403 | Downloads sind in diesem Plan nicht enthalten. Führen Sie ein Upgrade auf Pro oder höher durch, um Cover-Dateien herunterzuladen. |
cancellation_failed |
502 | Die Kündigung des Abonnements wurde abgelehnt. Versuchen Sie es gleich noch einmal; wenn es weiterhin fehlschlägt, kündigen Sie auf der Shopify-Abrechnungsseite oder wenden Sie sich an den Support. |
logo_override_on_plan |
403 | Die Logo-Überschreibung ist in diesem Plan nicht enthalten. Führen Sie ein Upgrade durch oder entfernen Sie die Logo-Überschreibung. |
invalid_logo |
422 | Die Logo-Datei ist kein akzeptiertes Bild. Laden Sie ein PNG, JPEG oder WebP unterhalb der im Editor angezeigten Größenbeschränkung hoch. |
invalid_brand_image |
422 | Das Markenreferenzbild ist nicht verwendbar. Laden Sie ein unterstütztes Bild unterhalb der Größenbeschränkung hoch oder entfernen Sie die Referenz und speichern Sie erneut. |
brand_image_too_large |
422 | Das Markenreferenzbild ist zu groß. Verkleinern Sie die Datei und laden Sie sie erneut hoch. |
brand_colors_too_many |
422 | Es wurden mehr als drei Markenfarben übergeben. Senden Sie höchstens drei Hex-Farben. |
upload_failed |
500 | Die hochgeladene Datei konnte nicht gespeichert werden. Versuchen Sie es erneut; wenn es weiterhin fehlschlägt, wenden Sie sich an den Support — der Asset-Speicher hat keine öffentliche URL zurückgegeben. |
attachment_upload_failed |
500 | Der Support-Anhang konnte nicht gespeichert werden. Senden Sie die Nachricht ohne Anhang und schicken Sie die Datei dann per E-Mail an den Support. |
invalid_webhook |
401 | Die Shop-Webhook-Signatur konnte nicht verifiziert werden. Prüfen Sie, ob das Webhook-Secret in Ihren WordPress-FastOG-Einstellungen mit dem von FastOG ausgestellten übereinstimmt. |
not_found |
404 | Dieser Endpunkt existiert nicht mehr. Öffnen Sie das Studio in Ihrem WordPress-Admin erneut. |
meta_refresh_unavailable |
503 | Die Aktualisierung der Share-Vorschau ist nicht konfiguriert. Teilen Sie den Link stattdessen erneut über Facebook. |
theme_write_disabled |
409 | Die Theme-Bearbeitung ist für diese App nicht aktiviert. Verwenden Sie stattdessen das Theme-App-Embed anstelle der Korrektur an der Theme-Datei. |
scope_required |
403 | FastOG fehlt eine Shopify-Berechtigung. Genehmigen Sie die angeforderten Scopes über die consent_url in der Antwort und versuchen Sie dann die Korrektur erneut. |
Wix-Bridge
Die Wix-Bridge wird von der Wix-App signiert, nicht von einer Händlersitzung, daher richten sich ihre Fehler an den App-Entwickler. Jede Antwort enthält weiterhin code und request_id; die Bridge-Request-ID ist die aus dem signierten Envelope.
| Code | HTTP | Bedeutung und Vorgehen |
|---|---|---|
invalid_bridge_signature |
401 | Die Wix-Bridge-Signatur konnte nicht verifiziert werden. Erstellen Sie die Anfrage mit dem gemeinsamen Secret, dem exakten Pfad und einem Zeitstempel, der weniger als fünf Minuten alt ist, neu. |
invalid_bridge_body |
400 | Der Body des Bridge-Envelopes ist fehlerhaft. Senden Sie body als JSON-Objekt und kodieren Sie jede darin enthaltene Zahl als String, damit die kanonische Signatur übereinstimmt. |
replayed_bridge_request |
401 | Diese Bridge-Anfrage wurde bereits verwendet. Erstellen Sie für jeden mutierenden Aufruf ein neues request_id. |
wix_site_not_installed |
403 | FastOG ist auf dieser Wix-Site nicht installiert. Installieren Sie die FastOG-App auf der Site und öffnen Sie sie anschließend erneut. |
wix_site_not_provisioned |
422 | Die Wix-Site hat noch keine Signing-Credentials. Installieren Sie die FastOG-App neu, damit die Site mit einem API-Schlüssel bereitgestellt wird. |
invalid_page_type |
422 | Der Seitentyp wird von FastOG auf Wix nicht abgedeckt. Senden Sie einen der Seitentypen, die das Studio anbietet. |
rule_not_found |
404 | Es gibt keine Regel mit dieser ID. Aktualisieren Sie die Liste; die Regel wurde gelöscht oder gehört zu einer anderen Site. |
invalid_target_id |
422 | Die Wix-Ziel-ID ist für diesen Seitentyp ungültig. Senden Sie die ID, die die Wix-App für diesen Seitentyp bereitstellt. |
invalid_preview |
422 | Die Preview-Payload ist fehlerhaft. Lesen Sie das details-Objekt, um das fehlerhafte Feld zu ermitteln. |
invalid_rule |
422 | Die Payload der Cover-Regel ist fehlerhaft. Lesen Sie das details-Objekt; template ist erforderlich und die optionalen Blöcke müssen Objekte sein. |
invalid_sync |
422 | Die Sync-Payload ist fehlerhaft. Lesen Sie das details-Objekt; target_type und target_id müssen übereinstimmen. |
invalid_regenerate_url |
422 | Die URL zum Neugenerieren fehlt. Senden Sie die Seiten-URL in url. |
invalid_regenerate_host |
422 | Die URL gehört nicht zum FastOG-Host. Senden Sie eine Cover-URL von fastog.com. |
ai_presets_unsupported |
422 | KI-generierte Cover-Sets werden nicht mehr erzeugt. Wählen Sie stattdessen einen der kuratierten Looks. |
original_tags_required |
422 | Die ursprünglichen Metadaten-Tags sind erforderlich. Senden Sie original_tags (oder current_tags), damit eine Deinstallation die Site-Metadaten wiederherstellen kann. |
invalid_restored |
422 | Die Payload der wiederherzustellenden Schlüssel ist fehlerhaft. Senden Sie restored als Array von Metadaten-Schlüsseln. |
invalid_seo_target |
422 | Der SEO-Zieltyp ist unbekannt. Verwenden Sie site, pattern oder item im Pfad. |
invalid_seo_payload |
422 | Die SEO-Metadaten-Payload ist fehlerhaft. Senden Sie target_id, current_tags und fastog_url als absolute http(s)-URL. |
sync_failed |
500 | Die Metadaten-Synchronisierung mit Wix ist fehlgeschlagen. Versuchen Sie es erneut; wenn es weiterhin fehlschlägt, prüfen Sie, ob die Site erreichbar ist und die App noch installiert ist. |
invalid_tier |
422 | Dieser Plan wird von FastOG auf Wix nicht angeboten. Senden Sie starter, pro oder scale als Tier. |
Demo-Oberfläche
Die Demo ist die nur für Eigentümer zugängliche Vertriebskonsole, kein Händler-Endpunkt.
| Code | HTTP | Bedeutung und Vorgehen |
|---|---|---|
url_required |
422 | Es wurde keine URL gesendet. Fügen Sie den Store- oder Produktlink ein, bevor Sie die Karte auslesen. |
unreadable_url |
422 | Diese Seite konnte nicht gelesen werden. Prüfen Sie, ob der Link öffentlich und vollständig ist; eine Seite hinter einem Login kann nicht gelesen werden. |
no_api_key |
422 | Es ist kein API-Schlüssel zum Signieren von Covern verfügbar. Erstellen Sie einen API-Schlüssel (oder geben Sie einen gültigen ein); die Antwort verlinkt auf die Seite mit den API-Schlüsseln. |
no_presets |
500 | Es sind keine Cover-Presets konfiguriert. Konfigurieren Sie mindestens ein Preset auf dem Server. |
Codes für den Editor für bereichsbezogene Regeln
Die Editoren für bereichsbezogene Regeln (Shopify-Admin und WooCommerce Studio) übersetzen diese Tokens selbst in die Sprache des Händlers, sodass ihre Antworten error und code enthalten, aber kein hint — eine zweite englische Beschreibung würde nur von der lokalisierten abweichen, die der Händler tatsächlich sieht:
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.
Kommen Sie nicht weiter?
- Öffnen Sie im Dashboard die Seite Render Logs — jedes Ergebnis (Erfolg + Ablehnung) ist dort mit seinem
error_code, dem HTTP-Status und den angeforderten Parametern aufgeführt. - Führen Sie
php artisan og:diagnoseauf einer signierten URL aus, um die gesamte Pipeline zu durchlaufen und zu sehen, welche Stufe fehlschlägt. - Prüfen Sie in der Seitenleiste die Dokumentation für das von Ihnen verwendete Framework (Next.js, Express, SvelteKit, ...).