Error Reference
Fil One returns standard S3 error responses in XML format. The format is standard, but the specific code returned for a given condition does not always match AWS S3, so an application that branches on error codes needs review. See known error-code deviations.
Error response format
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>NoSuchBucket</Code>
<Message>The specified bucket does not exist.</Message>
<BucketName>my-bucket</BucketName>
<RequestId>abc123def456</RequestId>
</Error>
Common error codes
Fil One returns standard S3-style error XML. The specific codes and HTTP statuses below are the common AWS S3 values, provided as a guide — the authoritative set is produced by the storage gateway and has not been exhaustively verified against Fil One. Handle unlisted codes defensively.
Client errors (4xx)
| Code | HTTP Status | Description |
|---|---|---|
AccessDenied | 403 | You do not have permission or the operation is not implemented. In eu-west-1, unimplemented operations return this instead of NotImplemented (501), and a hidden bucket or key returns it instead of a 404. Check the compatibility matrix before assuming a key-scope problem. |
BucketAlreadyExists | 409 | The bucket name is already taken. If the bucket is one you already own, eu-west-1 returns BucketAlreadyOwnedByYou instead. |
BucketNotEmpty | 409 | The bucket is not empty and cannot be deleted. |
InvalidAccessKeyId | 403 | The access key does not exist or has been revoked. |
InvalidBucketName | 400 | The bucket name does not meet naming requirements. |
InvalidArgument | 400 | A request parameter is invalid. |
NoSuchBucket | 404 | The specified bucket does not exist. |
NoSuchKey | 404 | The specified object does not exist. |
SignatureDoesNotMatch | 403 | The request signature does not match. Check your secret key and signing method. |
TooManyBuckets | 400 | You have reached the maximum number of buckets. |
Server errors (5xx)
| Code | HTTP Status | Description |
|---|---|---|
InternalError | 500 | An internal error occurred. Retry the request. |
ServiceUnavailable | 503 | The service is temporarily unavailable. Check the Retry-After header. |
SlowDown | 503 | You are sending requests too quickly. Implement exponential backoff. |
Troubleshooting
SignatureDoesNotMatch -- The most common auth error. Check that:
- Your secret key is correct (re-copy from the dashboard if unsure).
- Your system clock is accurate (SigV4 requires clocks within 15 minutes of server time).
- You are using the region that matches your key and endpoint (
eu-west-1orus-east-1). A key is scoped to one region and is rejected against the other.
AccessDenied (403) -- Not always a permissions problem. In eu-west-1 this is also what an unimplemented operation returns, and what you get instead of a 404 for a bucket or key you cannot see. Confirm the operation is supported in your region in the compatibility matrix before auditing your access-key scopes.
ServiceUnavailable (503) -- Transient. Retry with exponential backoff. If persistent, check status.fil.one.