Zum Hauptinhalt springen

storage_test_failed

HTTP 422 · code: "storage_test_failed" · type: https://docs.formfeed.dev/errors/storage-test-failed

Bevor eine Speicherverbindung gespeichert wird, und jedes Mal, wenn sie erneut getestet wird, schreibt Formfeed ein kleines Testobjekt, <prefix>.formfeed/connection-test.txt, in den Bucket. Dieser Schreibvorgang ist fehlgeschlagen. error enthält die Antwort des Anbieters, gekürzt auf ihren code, ihren http_status und die erste Zeile ihrer message; key ist das Objekt, das Formfeed schreiben wollte.

Sollte eine Verbindung gespeichert werden, wurde nichts gespeichert: Eine neue Verbindung wurde nicht angelegt, eine bestehende bleibt, wie sie war. Wurde eine gespeicherte Verbindung erneut getestet, trägt das Problem zusätzlich die connection; eine pausierte Verbindung bleibt pausiert.

Beispiel​

{
"type": "https://docs.formfeed.dev/errors/storage-test-failed",
"title": "Storage test failed",
"status": 422,
"detail": "Writing the test object failed: AccessDenied (Access Denied)",
"code": "storage_test_failed",
"error": {
"code": "AccessDenied",
"http_status": 403,
"message": "Access Denied"
},
"key": "formfeed/.formfeed/connection-test.txt",
"request_id": "req_4b7c1e9a2f3d4c5b8a6e7f9012"
}

Häufige Ursachen​

error.codeBedeutet meist
AccessDeniedDer Schlüssel darf nicht in diesen Bucket und dieses Präfix schreiben. Bei AWS muss die Richtlinie s3:PutObject auf arn:aws:s3:::<bucket>/<prefix>* erlauben, dazu kms:GenerateDataKey auf dem KMS-Schlüssel, falls der Bucket mit einem verschlüsselt. Bei Google Cloud Storage scheitert ein Schlüssel, der keine Objekte ersetzen darf, ab dem zweiten Test
InvalidAccessKeyIdDie Zugriffsschlüssel-ID ist vertippt, gelöscht oder gehört zu einem anderen Konto oder Anbieter
SignatureDoesNotMatchDer geheime Zugriffsschlüssel gehört nicht zur Zugriffsschlüssel-ID, oder ein S3-kompatibler Dienst erwartet eine andere Region zum Signieren
NoSuchBucketDer Bucket-Name ist falsch, oder der Bucket liegt in einem anderen Konto oder im anderen Rechtsraum von R2
PermanentRedirect, AuthorizationHeaderMalformedDie Region passt nicht zur Region des Buckets
EndpointBlockedDer Endpunkt ist nicht https, trägt Zugangsdaten oder wird in eine private oder interne Adresse aufgelöst
TimeoutError, NetworkErrorDer Endpunkt hat nicht geantwortet oder existiert nicht; prüfen Sie die Adresse
CredentialsUnavailableDie gespeicherten Zugangsdaten sind nicht mehr vorhanden, zum Beispiel weil der Workspace gelöscht wurde

So beheben Sie es​

  • Vergleichen Sie die Berechtigungen des Schlüssels mit den minimalen Berechtigungen Ihres Anbieters.
  • Prüfen Sie den Bucket-Namen, die Region oder den Rechtsraum bei R2 und bei S3-kompatiblen Diensten den Endpunkt und Bucket im Pfad adressieren. Siehe Bucket verbinden.
  • Speichern Sie erneut mit den korrigierten Werten. Eine pausierte Verbindung wird fortgesetzt, sobald ein Test besteht.

Wiederholen?​

Nach der Korrektur von Schlüssel oder Bucket. Dieselbe Anfrage liefert bei einer Wiederholung dieselbe Antwort, es sei denn, der Anbieter war nur kurz nicht erreichbar.