Thema

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-Header X-Request-ID zurückgegeben). Eine Oberfläche ohne Zuordnungsmöglichkeit antwortet mit null, 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

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

Wenn Sie eine Antwort erhalten, die Sie nicht verstehen, ist der schnellste Weg:

  1. Notieren Sie den code.
  2. Prüfen Sie Ihren URL-Builder — die meisten Fehler sind Signing-Bugs, keine Konto-Probleme.
  3. Ordnen Sie den Code unten der genauen Ursache und Lösung zu.
  4. Ö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, dass request_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:diagnose auf 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, ...).

Kostenlos testen – keine Anmeldung erforderlich

Vorschau und Test dynamischer OG-Bilder in Sekunden.

Kostenlosen OG-Bild-Tester öffnen

A BeCaSimulations site