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
| HTTP | Code | Bedeutung |
|---|---|---|
| 400 | invalid_request | Fehlerhaftes JSON oder fehlendes Feld. |
| 400 | idempotency_key_required | Schreibanfrage ohne Idempotency-Key. |
| 401 | unauthorized | Fehlendes, ungültiges, unbekanntes oder widerrufenes Token. |
| 402 | plan_required | Der 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}. |
| 403 | forbidden | Die 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. |
| 403 | notifications_suspended | Benachrichtigungen über Produkt-Updates sind für diesen Shop nach Spam-Beschwerden zu früheren Kampagnen ausgesetzt. Kein erneuter Versuch hilft — kontaktieren Sie den Support. |
| 404 | asset_not_found, mapping_not_found, order_not_found, category_not_found, job_not_found | Die Ressource fehlt oder gehört zu einem anderen Shop. |
| 404 | notification_not_found | Die Produkt-Update-Benachrichtigung fehlt oder gehört zu einem anderen Shop. |
| 409 | idempotency_conflict | Derselbe Schlüssel wurde mit einer anderen Anfrage wiederverwendet. |
| 409 | stamping_in_progress | Der erneute Versand ist blockiert, solange die PDF-Stempelung aussteht. |
| 409 | delivery_not_yet_released | Fü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. |
| 409 | notification_not_cancellable | Nur 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. |
| 409 | app_not_installed | Alva 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. |
| 409 | multiple_mappings_match | Eine 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. |
| 409 | personalized_product | Das 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. |
| 422 | storage_quota_exceeded | Der Upload oder Import würde das Speicherkontingent überschreiten. |
| 422 | key_limit_reached | Der Shop hat bereits das Maximum von 25 aktiven API-Schlüsseln; widerrufen Sie zuerst einen. |
| 422 | withdrawal_consent_required | Fü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. |
| 422 | email_disabled | Kunden-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. |
| 422 | invalid_message | Die 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. |
| 422 | no_downloadable_content | Keine 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. |
| 422 | no_eligible_recipients | Niemand, 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. |
| 429 | rate_limited | Das Limit für API-Schlüssel oder erneute Bestellversände wurde erreicht. |
| 429 | notification_cooldown | Eine 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. |
| 429 | too_many_active_notifications | Der 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. |
| 500 | internal_error | Unerwarteter 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