Zum Hauptinhalt springen
- Fehlerbehandlung

API-Fehler

Jeder API-Fehler gibt einen JSON-Fehlerumschlag mit einem stabilen Code, HTTP-Status, einer Meldung und einer request_id für den Support zurück.

Fehler-Envelope

{
  "error": {
    "code": "asset_not_found",
    "message": "No asset with id 42 for this shop",
    "status": 404,
    "request_id": "req_..."
  }
}

Geben Sie die request_id an, wenn Sie den Support kontaktieren.

Häufige Fehlercodes

HTTPCodeBedeutung
400invalid_requestFehlerhaftes JSON oder fehlendes Feld.
400idempotency_key_requiredSchreibanfrage ohne Idempotency-Key.
401unauthorizedFehlendes, ungültiges, unbekanntes oder widerrufenes Token.
402plan_requiredDer Shop nutzt den Free-Plan. Die externe API erfordert einen kostenpflichtigen Plan. Bei einer Produkt-Update-Benachrichtigung bedeutet der Code außerdem, dass das Abonnement des Shops nicht aktiv ist, und eine Kampagne, die nach dem Einreihen aus einem dieser Gründe gestoppt wurde, meldet error: plan_required bei GET /notifications/{id}.
403forbiddenDie externe API ist abgeschaltet (der globale Notschalter), dem API-Schlüssel fehlt ein Scope, den die Anfrage benötigt, oder Alva hat auf den Routen für Produkt-Update-Benachrichtigungen diese Benachrichtigungen als Notbremse abgeschaltet. Kontaktieren Sie uns, wenn ein Schlüssel mit den richtigen Scopes diese Antwort erhält.
403notifications_suspendedBenachrichtigungen über Produkt-Updates sind für diesen Shop nach Spam-Beschwerden zu früheren Kampagnen ausgesetzt. Kein erneuter Versuch hilft — kontaktieren Sie den Support.
404asset_not_found, mapping_not_found, order_not_found, category_not_found, job_not_foundDie Ressource fehlt oder gehört zu einem anderen Shop.
404notification_not_foundDie Produkt-Update-Benachrichtigung fehlt oder gehört zu einem anderen Shop.
409idempotency_conflictDerselbe Schlüssel wurde mit einer anderen Anfrage wiederverwendet.
409stamping_in_progressDer erneute Versand ist blockiert, solange die PDF-Stempelung aussteht.
409delivery_not_yet_releasedFür das Produkt ist eine verzögerte Download-Auslieferung konfiguriert, und die Dateien des Käufers sind noch nicht freigeschaltet. error.details.release_at ist der ISO-8601-Zeitpunkt der Freischaltung; der Händler kann die Bestellung mit dem Endpunkt grant-downloads vorzeitig freigeben.
409notification_not_cancellableNur eine wartende Produkt-Update-Benachrichtigung kann abgebrochen werden. Diese hat bereits mit dem Versand begonnen, ist abgeschlossen, fehlgeschlagen oder wurde abgebrochen — error.details.status sagt, was zutrifft.
409app_not_installedAlva hat keine aktive Shopify-Sitzung für den Shop, meist weil die App deinstalliert wurde, daher kann eine Anfrage, die Shopify benötigt, nicht ausgeführt werden — das Schreiben einer Zuordnung oder eine Produkt-Update-Benachrichtigung, deren Notiz ein Metafeld nennt oder die variant_ids sendet. Öffnen Sie die App im Shopify-Admin oder installieren Sie sie neu und versuchen Sie es dann erneut.
409multiple_mappings_matchEine Shopify-ID passt zu mehr als einer Zuordnung, daher kann Alva nicht erkennen, welche Sie meinen. Bei POST /products/{id}/notifications listet error.details.ambiguous_variant_ids die angeforderten Varianten auf, die von mehr als einer Zuordnung bedient werden.
409personalized_productDas Produkt ist personalisiert. Die Personalisierung gilt für das ganze Produkt, daher kann POST /mappings mit shopify_variant_ids ihm keine variantenspezifische Zuordnung hinzufügen (es wird nichts geschrieben), und POST /products/{id}/notifications kann seine Käufer nicht benachrichtigen, weil jede Bestellung ihre eigene Datei hat.
422storage_quota_exceededDer Upload oder Import würde das Speicherkontingent überschreiten.
422key_limit_reachedDer Shop hat bereits das Maximum von 25 aktiven API-Schlüsseln; widerrufen Sie zuerst einen.
422withdrawal_consent_requiredFür den Shop ist die EU-Widerrufsrecht-Einwilligung aktiviert und für die Bestellung liegt noch kein Einwilligungsnachweis vor; Download-URLs werden ausgegeben, sobald der Kunde einwilligt.
422email_disabledKunden-E-Mails sind in den E-Mail-Einstellungen der App deaktiviert. Wird beim erneuten Versand einer Bestell-E-Mail, von POST /orders/{id}/assignments mit send_email: true (es wird nichts angelegt), von POST /products/{id}/notifications und als notify_customers-Ergebnis beim Schreiben einer Zuordnung zurückgegeben (die Zuordnung selbst wird trotzdem gespeichert). Schalten Sie sie ein und versuchen Sie es erneut.
422invalid_messageDie Produkt-Update-Notiz hat eine Regel verletzt: leer, zu lang (auch sobald ihre Variablen ausgefüllt sind), eine unbekannte oder nicht geschlossene Variable, mehr als fünf verschiedene Metafelder, ein Link oder eine E-Mail-Adresse (auch innerhalb eines Metafeldwerts) oder ein Metafeld, das fehlt, zu lang ist oder einen Typ hat, der in einer E-Mail nicht angezeigt werden kann. error.details.errors[] nennt jede Regel; error.details.max_length ist die Obergrenze (2.000). Es wurde nichts gesendet oder geschrieben. Beim Schreiben einer Zuordnung mit notify_customers weisen nur die Regeln zum eigenen Text der Notiz den Schreibvorgang ab; ein Metafeld-Problem wird nach dem Speichern der Zuordnung in data.notification gemeldet.
422no_downloadable_contentKeine anvisierte Zuordnung hat Dateien, Pakete oder Links, die angekündigt werden könnten; reine Lizenzschlüssel-Zuordnungen und personalisierte Zuordnungen können nicht Gegenstand eines Produkt-Updates sein. Mit variant_ids nennt error.details.mapping_ids die Zuordnungen, zu denen diese Varianten aufgelöst wurden, sofern das Produkt eine andere Zuordnung hat, für die eine Benachrichtigung möglich wäre.
422no_eligible_recipientsNiemand, dem eine E-Mail gesendet werden kann: Kein Käufer der anvisierten Zuordnungen ist angemeldet. error.details.opted_out_count sagt, wie viele sich abgemeldet haben. Eine brandneue Zuordnung hat noch keine Käufer.
429rate_limitedDas Limit für API-Schlüssel oder erneute Bestellversände wurde erreicht.
429notification_cooldownEine Produkt-Update-Benachrichtigung pro Produkt pro 7 Tage, über alle seine Varianten und jede Quelle — oder eine Kampagne für das Produkt wartet noch oder sendet gerade. Dies ist nicht der Token-Bucket: Retry-After kann bis zu sieben Tage betragen, und error.details.next_available_at ist der Zeitpunkt, zu dem das Produkt wieder frei ist. Nicht automatisch wiederholen — planen Sie den nächsten Aufruf für next_available_at. Eine Kampagne abzubrechen setzt das Limit nicht zurück; prüfen Sie eine Notiz mit dry_run, bevor Sie senden.
429too_many_active_notificationsDer Shop hat bereits 5 Produkt-Update-Benachrichtigungen, die noch warten oder gerade senden, über alle Produkte und Quellen hinweg. error.details.limit ist die Obergrenze, und error.details.active_notification_ids listet diese Kampagnen auf, die älteste zuerst. Es gibt kein Retry-After: Fragen Sie GET /notifications/{id} für eine davon regelmäßig ab und versuchen Sie es erneut, sobald sie abgeschlossen ist. Ein Probelauf wird auf dieselbe Weise abgewiesen; beim Schreiben einer Zuordnung wird dies stattdessen in data.notification gemeldet.
500internal_errorUnerwarteter Serverfehler. Bei POST /products/{id}/notifications gibt jeder 500er den Idempotency-Key frei; wiederholen Sie also dieselbe Anfrage mit demselben Schlüssel. Drei Fälle sind dort zu erwarten: Shopify konnte die Metafelder des Produkts für die Notiz nicht liefern, Shopify konnte die angeforderten variant_ids nicht bestätigen, oder das Anlegen hat mehr als 8 Sekunden hinter den anderen Anlegevorgängen des Shops gewartet. Hat der fehlgeschlagene Versuch die Kampagne doch eingereiht, wird die Wiederholung mit 429 notification_cooldown abgelehnt, statt eine zweite zu starten.

API-Dokumentation

War das hilfreich?

Immer noch nicht weiter? Schreiben Sie an admin@alvaapps.com.

Zuletzt aktualisiert 2026-10-20