All Products
Search
Document Center

Object Storage Service:Object Storage Service: HTTP status code 409

Last Updated:Feb 27, 2026

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 codeError messageCause summary
BucketAlreadyExistsThe requested bucket name is not availableThe bucket name is already taken.
BucketAlreadyExistsBucket already exists can't modify locationThe region of an existing bucket cannot be changed.
BucketAlreadyExistsCannot modify existing bucket's storage class / Bucket already exists can't modify storage typeThe storage class of an existing bucket cannot be changed.
BucketAlreadyExistsBucket already exists can't modify data redundancy typeThe data redundancy type of an existing bucket cannot be changed.
BucketNotEmptyThe bucket you tried to delete is not emptyThe bucket still contains objects, parts, or LiveChannels.
CnameAlreadyExistsThe cname has been attatched to your other bucket alreadyThe custom domain name is already mapped to another bucket.
PositionNotEqualToLengthPosition is not equal to file lengthThe Position value does not match the current object length.
FileAlreadyExistsThe object you specified already exists and can not be overwrittenThe x-oss-forbid-overwrite header prevents overwriting.
LiveChannelDisabledLive channel is disabled by ownerThe LiveChannel is disabled and cannot accept streams.
ChannelStillLiveLive channel couldn't be updated or deleted when channel is liveThe LiveChannel is actively ingesting streams.
FileImmutableThe object you specified is immutableA retention policy protects the object from changes.
RestoreAlreadyInProgressThe restore operation is in progressThe object is already being restored.
KeyDisabledThe request was rejected because the key state is DisabledThe CMK is disabled.
KeyPendingDeletionThe request was rejected because the key state is PendingDeletionThe CMK is scheduled for deletion.
KeyPendingImportThe request was rejected because the key state is PendingImportThe CMK is awaiting key material import.
WORMConfigurationAlreadyExistsThe WORM Configuration already existsA retention policy is already configured for the bucket.
InventoryConfigurationAlreadyExistsThe Inventory Configuration already existsAn inventory configuration with the same name already exists.
StaleFileFile is stale for this operationMultiple 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:

    1. 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.

    2. Delete all parts generated by multipart upload or resumable upload tasks. For more information, see Manage parts.

    3. 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:

      1. Log on to the OSS console.

      2. In the left-side navigation pane, click Buckets. On the Buckets page, click the name of the desired bucket.

      3. In the left-side navigation tree, choose Bucket Settings > Domain Names.

      4. On the Domain Names page, find the custom domain name and click Manage Mapping Configurations in the Actions column.

      5. 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.

      6. Click OK.

      7. 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:

      1. Log on to the OSS console.

      2. In the left-side navigation pane, click Buckets. On the Buckets page, click the name of the desired bucket.

      3. In the left-side navigation tree, choose Data Processing > Image Processing (IMG).

      4. 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.

      5. 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-position response header before sending the next request. In concurrent scenarios, even if you use the x-oss-next-append-position value 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=true header, 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-overwrite header from the request or set it to false.

    • 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.