This topic describes the error messages returned with HTTP status code 409 (Conflict), along with their causes and solutions.
Quick reference
The following table lists all error codes covered in this topic.
| Error code | Error message | Cause summary |
|---|---|---|
| BucketAlreadyExists | The requested bucket name is not available | The bucket name is already taken. |
| BucketAlreadyExists | Bucket already exists can't modify location | The region of an existing bucket cannot be changed. |
| BucketAlreadyExists | Cannot modify existing bucket's storage class / Bucket already exists can't modify storage type | The storage class of an existing bucket cannot be changed. |
| BucketAlreadyExists | Bucket already exists can't modify data redundancy type | The data redundancy type of an existing bucket cannot be changed. |
| BucketNotEmpty | The bucket you tried to delete is not empty | The bucket still contains objects, parts, or LiveChannels. |
| CnameAlreadyExists | The cname has been attatched to your other bucket already | The custom domain name is already mapped to another bucket. |
| PositionNotEqualToLength | Position is not equal to file length | The Position value does not match the current object length. |
| FileAlreadyExists | The object you specified already exists and can not be overwritten | The x-oss-forbid-overwrite header prevents overwriting. |
| LiveChannelDisabled | Live channel is disabled by owner | The LiveChannel is disabled and cannot accept streams. |
| ChannelStillLive | Live channel couldn't be updated or deleted when channel is live | The LiveChannel is actively ingesting streams. |
| FileImmutable | The object you specified is immutable | A retention policy protects the object from changes. |
| RestoreAlreadyInProgress | The restore operation is in progress | The object is already being restored. |
| KeyDisabled | The request was rejected because the key state is Disabled | The CMK is disabled. |
| KeyPendingDeletion | The request was rejected because the key state is PendingDeletion | The CMK is scheduled for deletion. |
| KeyPendingImport | The request was rejected because the key state is PendingImport | The CMK is awaiting key material import. |
| WORMConfigurationAlreadyExists | The WORM Configuration already exists | A retention policy is already configured for the bucket. |
| InventoryConfigurationAlreadyExists | The Inventory Configuration already exists | An inventory configuration with the same name already exists. |
| StaleFile | File is stale for this operation | Multiple metadata or tag modifications are in progress simultaneously. |
BucketAlreadyExists
The requested bucket name is not available
Cause: The specified bucket name already exists or is owned by another user. Bucket names must be globally unique.
Solution: Specify a different bucket name. For more information, see Create buckets.
Bucket already exists can't modify location
Cause: The region of an existing bucket cannot be changed.
Solution: Create a new bucket in the desired region.
Cannot modify existing bucket's storage class or Bucket already exists can't modify storage type
Cause: The storage class of an existing bucket cannot be changed.
Solution: Create a new bucket with the desired storage class.
Bucket already exists can't modify data redundancy type
Cause: The data redundancy type of an existing bucket cannot be changed.
Solution: Create a new bucket with the desired data redundancy type.
BucketNotEmpty
The bucket you tried to delete is not empty
Cause: The bucket contains objects, parts from incomplete multipart uploads, or LiveChannels.
Solution: Remove the following items before deleting the bucket:
Delete all objects. For more information, see Delete objects. To delete objects in batches, you can configure lifecycle rules. For more information, see Configure lifecycle rules.
Delete all parts generated by multipart upload or resumable upload tasks. For more information, see Manage parts.
Delete all LiveChannels. For more information, see DeleteLiveChannel. For more information about LiveChannels, see RTMP-based stream ingest.
CnameAlreadyExists
The cname has been attatched to your other bucket already
Causes:
The custom domain name is mapped to another bucket in the current Alibaba Cloud account. The CnameType parameter in the error message is
CNAME_OSS.The custom domain name is used for image processing. The CnameType parameter in the error message is
CNAME_IMG.
Solutions:
If CnameType is
CNAME_OSS, unbind the domain from the other bucket:Log on to the OSS console.
In the left-side navigation pane, click Buckets. On the Buckets page, click the name of the desired bucket.
In the left-side navigation tree, choose Bucket Settings > Domain Names.
On the Domain Names page, find the custom domain name and click Manage Mapping Configurations in the Actions column.
In the Manage Mapping Configurations panel, click Unbind. > Important After the mapping between the custom domain name and the bucket is removed, all services that use the custom domain name cannot be accessed.
Click OK.
Map the custom domain name to the desired bucket. For more information, see Map custom domain names.
If CnameType is
CNAME_IMG, unbind the domain from image processing:Log on to the OSS console.
In the left-side navigation pane, click Buckets. On the Buckets page, click the name of the desired bucket.
In the left-side navigation tree, choose Data Processing > Image Processing (IMG).
On the Image Processing (IMG) page, click Unbind Custom Domain Name. > Important > - By default, the custom domain name displayed on the Image Processing (IMG) page is the most recent custom domain name that is mapped to the bucket and is in the enabled state. Check whether you want to remove the mapping between the displayed custom domain name and the bucket. > > If the custom domain name is not displayed on the Image Processing (IMG) page, contact technical support. > > - After the mapping between the custom domain name and the bucket is removed, all services that use the custom domain name cannot be accessed.
Map the custom domain name to the desired bucket. For more information, see Map custom domain names.
PositionNotEqualToLength
Position is not equal to file length
Cause: The Position value in the request does not match the current object length. The request succeeds only when:
Position is 0 and the appendable object with the same name has a length of 0, or
Position is 0 and no appendable object with the same name exists.
Solution: Get the correct Position from the
x-oss-next-append-positionresponse header before sending the next request. In concurrent scenarios, even if you use thex-oss-next-append-positionvalue from the previous response, the request may fail because the value is not immediately updated. For more information, see AppendObject.
FileAlreadyExists
The object you specified already exists and can not be overwritten
Cause: The request contains the
x-oss-forbid-overwrite=trueheader, which prevents overwriting the existing object.Solution: Use one of the following methods to allow overwriting in simple upload, multipart upload, or object copy operations:
Remove the
x-oss-forbid-overwriteheader from the request or set it tofalse.Enable versioning for the bucket. The overwritten object is stored as a previous version, which you can restore at any time.
LiveChannelDisabled
Live channel is disabled by owner
Cause: The LiveChannel is disabled. Streams cannot be ingested to a disabled LiveChannel. If you attempt to ingest a stream, your client is disconnected after approximately 10 seconds.
Solution: Enable the LiveChannel before ingesting streams. For more information, see PutLiveChannelStatus.
ChannelStillLive
Live channel couldn't be updated or deleted when channel is live
Cause: The LiveChannel is in the Live state, which means a client is actively ingesting streams. A LiveChannel in this state cannot be updated or deleted.
Solution: Wait until the client finishes ingesting streams, then update or delete the LiveChannel.
FileImmutable
The object you specified is immutable
Cause: The object is protected by a retention policy and cannot be deleted or modified until the policy expires.
Solution: Wait until the retention policy expires. You can call GetBucketWorm to query the retention period.
RestoreAlreadyInProgress
The restore operation is in progress
Cause: A RestoreObject request has been submitted, and the object is being restored on the OSS server.
Solution: Do not send duplicate RestoreObject requests.
KeyDisabled
The request was rejected because the key state is Disabled
Cause: The specified customer master key (CMK) is disabled.
Solution: Call the EnableKey operation to re-enable the CMK.
KeyPendingDeletion
The request was rejected because the key state is PendingDeletion
Cause: The specified CMK is in the PendingDeletion state. A CMK in this state cannot be used to encrypt data, decrypt data, or generate data keys. After a CMK is deleted, it cannot be recovered. Data that is encrypted and data keys that are generated by using the CMK cannot be decrypted. KMS only allows scheduling key deletion (rather than immediate deletion) to prevent accidental deletion of CMKs. For more information, see ScheduleKeyDeletion.
Solution: Use another CMK for encryption and decryption. To temporarily revoke access without permanent deletion, call the DisableKey operation instead.
KeyPendingImport
The request was rejected because the key state is PendingImport
Cause: The specified CMK is in the PendingImport state. A CMK in this state cannot be used to encrypt data, decrypt data, or generate data keys.
Solution: Call the ImportKeyMaterial operation to import the key material.
WORMConfigurationAlreadyExists
The WORM Configuration already exists
Cause: A retention policy is already configured for the bucket. Only one retention policy per bucket is allowed.
Solution: If the existing retention policy is not locked, delete it and configure a new one. If the policy is locked, it cannot be deleted. For more information, see Retention policies.
InventoryConfigurationAlreadyExists
The Inventory Configuration already exists
Cause: An inventory with the same name already exists in the bucket. Inventory names must be globally unique within a bucket.
Solution: Specify a unique inventory name. You can call the GetBucketInventory operation to query existing inventories.
StaleFile
File is stale for this operation
Cause: Multiple object metadata or object tags are being modified simultaneously.
Solution: Do not modify multiple object metadata or object tags at the same time.