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.code | Bedeutet meist |
|---|---|
AccessDenied | Der 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 |
InvalidAccessKeyId | Die Zugriffsschlüssel-ID ist vertippt, gelöscht oder gehört zu einem anderen Konto oder Anbieter |
SignatureDoesNotMatch | Der geheime Zugriffsschlüssel gehört nicht zur Zugriffsschlüssel-ID, oder ein S3-kompatibler Dienst erwartet eine andere Region zum Signieren |
NoSuchBucket | Der Bucket-Name ist falsch, oder der Bucket liegt in einem anderen Konto oder im anderen Rechtsraum von R2 |
PermanentRedirect, AuthorizationHeaderMalformed | Die Region passt nicht zur Region des Buckets |
EndpointBlocked | Der Endpunkt ist nicht https, trägt Zugangsdaten oder wird in eine private oder interne Adresse aufgelöst |
TimeoutError, NetworkError | Der Endpunkt hat nicht geantwortet oder existiert nicht; prüfen Sie die Adresse |
CredentialsUnavailable | Die 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.