Error codes
BangmodStorage returns S3-format errors: <Error><Code>...</Code><Message>...</Message>...</Error> with an HTTP status code and a unique x-amz-request-id header. The codes below are the ones most commonly returned by our gateway.
4xx — Client errors
| HTTP | Code | Meaning |
|---|
| 400 | InvalidBucketName | Bucket name doesn't match our naming rules (whitespace, special chars, length, etc.). |
| 400 | InvalidArgument | Generic invalid request parameter. Message provides specifics. |
| 400 | EntityTooLarge | Single-PUT body > 5 GB. Use multipart upload. |
| 400 | EntityTooSmall | Multipart part < 5 MB (except last). |
| 400 | InvalidPart | Multipart Complete references a part number not in the upload, or the supplied ETag doesn't match. |
| 400 | InvalidDigest | Supplied Content-MD5 doesn't match computed digest. |
| 400 | RequestTimeTooSkewed | Client clock > 15 min off UTC. Sync via NTP. |
| 400 | MissingContentLength | PUT without Content-Length header (chunked encoding requires the special SigV4 streaming mode). |
| 403 | AccessDenied | Bucket policy or ACL denies the action. Inspect x-amz-request-id with support if unexpected. |
| 403 | SignatureDoesNotMatch | SigV4 signature invalid — typically wrong secret, wrong region in credential scope, or signed-headers mismatch. |
| 403 | InvalidAccessKeyId | Access key not recognised. Revoked, deleted, or wrong region. |
| 403 | RequestNotAuthorized | Account is suspended (billing or AUP). |
| 404 | NoSuchBucket | Bucket does not exist for this account. |
| 404 | NoSuchKey | Object does not exist at the specified key. |
| 404 | NoSuchUpload | Multipart upload ID not found (already completed, aborted, or expired). |
| 409 | BucketAlreadyExists | The name is taken by another account. Pick a different name. |
| 409 | BucketNotEmpty | DeleteBucket on a bucket containing objects. Delete contents first. |
| 411 | MissingContentLength | See 400 variant; this status returned for some SDK paths. |
| 412 | PreconditionFailed | Conditional request (If-Match etc.) didn't match. |
5xx — Server errors
| HTTP | Code | Meaning |
|---|
| 500 | InternalError | Unexpected gateway error. Retry with exponential backoff; include x-amz-request-id in support email if persistent. |
| 503 | SlowDown | Rate-limit throttle. Apply exponential backoff. If sustained, see rate limits. |
| 503 | ServiceUnavailable | Region temporarily degraded. Status updates at /status. |
BangmodStorage-specific codes
| HTTP | Code | Meaning |
|---|
| 403 | BGSAccountUnverified | Account email not yet verified. Click the verification link sent at signup, or request a new one from /console/settings. |
| 403 | BGSBillingHold | Account billing is past due. Resolve at /console/billing. |
| 403 | BGSRegionMismatch | Access key was issued for a different region than the endpoint hit. Issue a region-matching key, or hit the correct endpoint. |
Debugging
Include the response's x-amz-request-id header and approximate request time when contacting support@bangmod.storage. That lets us pull the gateway-side trace and tell you exactly what we saw on the wire.