PublishStateMachineVersion - AWS Step Functions


Creates a version from the current revision of a state machine. Use versions to create immutable snapshots of your state machine. You can start executions from versions either directly or with an alias. To create an alias, use CreateStateMachineAlias.

You can publish up to 1000 versions for each state machine. You must manually delete unused versions using the DeleteStateMachineVersion API action.

PublishStateMachineVersion is an idempotent API. It doesn't create a duplicate state machine version if it already exists for the current revision. Step Functions bases PublishStateMachineVersion's idempotency check on the stateMachineArn, name, and revisionId parameters. Requests with the same parameters return a successful idempotent response. If you don't specify a revisionId, Step Functions checks for a previously published version of the state machine's current revision.

Related operations:

Request Syntax

{ "description": "string", "revisionId": "string", "stateMachineArn": "string" }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.


An optional description of the state machine version.

Type: String

Length Constraints: Maximum length of 256.

Required: No


Only publish the state machine version if the current state machine's revision ID matches the specified ID.

Use this option to avoid publishing a version if the state machine changed since you last updated it. If the specified revision ID doesn't match the state machine's current revision ID, the API returns ConflictException.


To specify an initial revision ID for a state machine with no revision ID assigned, specify the string INITIAL for the revisionId parameter. For example, you can specify a revisionID of INITIAL when you create a state machine using the CreateStateMachine API action.

Type: String

Required: No


The Amazon Resource Name (ARN) of the state machine.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 256.

Required: Yes

Response Syntax

{ "creationDate": number, "stateMachineVersionArn": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.


The date the version was created.

Type: Timestamp


The Amazon Resource Name (ARN) (ARN) that identifies the state machine version.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 256.


For information about the errors that are common to all actions, see Common Errors.


Updating or deleting a resource can cause an inconsistent state. This error occurs when there're concurrent requests for DeleteStateMachineVersion, PublishStateMachineVersion, or UpdateStateMachine with the publish parameter set to true.

HTTP Status Code: 409

HTTP Status Code: 400


The provided Amazon Resource Name (ARN) is not valid.

HTTP Status Code: 400


The request would cause a service quota to be exceeded.

HTTP Status Code: 402

HTTP Status Code: 400


The specified state machine is being deleted.

HTTP Status Code: 400


The specified state machine does not exist.

HTTP Status Code: 400


The input does not satisfy the constraints specified by an AWS service.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: