Wie behebe ich die Fehler „ReceipHandleIsInvalid“ und „InvalidParameterValue“ beim Aufrufen der AWS-SQS-DeleteMessage-API?

Lesedauer: 2 Minute
0

Ich erhalte den Fehler „ReceiptHandleIsInvalid“ oder „InvalidParameterValue“, wenn ich versuche, Nachrichten aus meiner Amazon-Simple-Queue-Service (Amazon SQS)-Warteschlange zu löschen.

Kurzbeschreibung

Wenn Sie eine Nachricht aus einer Amazon-SQS-Warteschlange erhalten, erhalten Sie auch einen Empfangsidentifikator für diese Nachricht für FIFO (First-In-First-Out) und Standardwarteschlangen. Der Empfangsidentifikator ist erforderlich, wenn Sie die Nachricht löschen oder deren Sichtbarkeit ändern.

Wenn der Empfangsidentifikator falsch ist, erhalten Sie eine Fehlermeldung, die dem folgenden Beispiel ähnelt:

Beim Aufrufen des DeleteMessage-Vorgangs ist ein Fehler aufgetreten (ReceiptHandleIsInvalid): Der eingegebene Empfangsidentifikator „IHR EMPFANGSIDENTIFIKATOR“ ist kein gültiger Empfangsidentifikator.

Wenn der Empfangsidentifikator abgelaufen ist, erhalten Sie eine Fehlermeldung, die dem folgenden Beispiel ähnelt:

Beim Aufrufen des DeleteMessage-Vorgangs ist ein Fehler aufgetreten (InvalidParameterValue): Der Wert „IHR EMPANGSIDENTIFIKATOR“ für den Parameter Empfangsidentifikator ist ungültig. Grund: Der Empfangsidentifikator ist abgelaufen.

Der Empfangsidentifikator läuft bei Überschreiten der Sichtbarkeitszeit ab. Wenn eine Sichtbarkeitszeit abläuft, kehrt die Nachricht in die Warteschlange zurück. Wenn Sie die Nachricht erneut von einem Benutzer erhalten, bekommen Sie einen neuen Empfangsidentifikator. Dieser Fehler tritt auf, weil Sie einen älteren Empfangsidentifikator anstelle des neuesten Empfangsidentifikators verwendet haben.

Hinweis:Ältere Empfangsidentifikatoren sind möglicherweise erfolgreich, wenn Sie Standard-SQS-Warteschlangen verwenden. Es hat sich jedoch bewährt, den neuesten Empfangsidentifikator fürDeleteMessage-API-Aufrufe zu verwenden.

Behebung

Um Fehler durch falsche oder abgelaufene Empfangsidentifikatoren zu vermeiden, verwenden Sie den richtigen Empfangsidentifikator, um die Nachricht innerhalb der SQS-Warteschlangensichtbarkeitszeit zu löschen.

Wenn Sie eine Nachricht mehr als einmal erhalten, überprüfen Sie die Antwort des letztenReceiveMessage-API-Aufrufs und identifizieren Sie denReceiptHandle-Wert. Verwenden Sie dann den identifiziertenReceiptHandle-Wert, wenn Sie dieDeleteMessage-API aufrufen.

Außerdem wird dieser Fehler möglicherweise angezeigt, wenn Sie denDeleteMessage-API-Aufruf ausführen:

Beim Aufrufen des DeleteMessage-Vorgangs ist ein Fehler aufgetreten (ReceiptHandleIsInvalid): Der Empfangsidentifikator „IHR EMPFANGSIDENTIFIKATOR“ ist für diese Warteschlange nicht gültig.

Dieser Fehler tritt auf, wenn Sie versuchen, eine Nachricht mit einem Empfangsidentifikator zu löschen, der aus einer anderen SQS-Warteschlange stammt. Um diesen Fehler zu vermeiden, verwenden Sie den richtigen Empfangsidentifikator aus der SQS-Warteschlange, in der sich die Nachricht befindet.

Ähnliche Informationen

Bewährte Methoden für Amazon SQS