Skip to main content

Terraform Management

Yellow.ai's integration with Terraform (HCP Terraform) lets your agent manage cloud infrastructure directly from a conversation — without anyone logging into Terraform manually. Your agent can create workspaces, trigger deployments, manage variables, check run statuses, and more.

What can you build with this?

Common use cases include a DevOps helpdesk agent (check run status, cancel stuck runs), an infrastructure provisioning agent (create workspaces, set variables, trigger runs), and an ops monitoring agent (list resources, get state versions, view workspace details).


Supported Actions

ActionDescription
Get OrganizationFetches details of your Terraform organization.
Get WorkspaceFetches details of a specific workspace by name.
List WorkspacesLists all workspaces in your organization.
Create WorkspaceCreates a new workspace in Terraform.
Update WorkspaceUpdates settings of an existing workspace.
Delete WorkspaceDeletes a workspace permanently.
Lock WorkspaceLocks a workspace to prevent new runs.
Unlock WorkspaceUnlocks a workspace so runs can proceed.
Create Configuration VersionCreates a configuration version — a required step before triggering a run.
Get Configuration VersionFetches the status of a configuration version by ID.
Create RunTriggers a plan/apply run in a workspace.
Get RunFetches details and current status of a run.
List Runs in WorkspaceLists runs in a workspace, with optional status filter.
Apply RunApproves and applies a run that is waiting for confirmation.
Cancel RunCancels an in-progress run.
Discard RunDiscards a planned run without applying it.
Create Workspace VariableCreates a variable (Terraform or environment) in a workspace.
List Workspace VariablesLists all variables in a workspace.
Update Workspace VariableUpdates an existing variable's value or settings.
Delete Workspace VariableDeletes a variable from a workspace.
Get Current State VersionFetches the latest Terraform state for a workspace.
List Workspace ResourcesLists all managed resources in a workspace.

Before You Begin — Key Concepts

Think of Terraform like a construction project manager:

  • A Workspace is like a project folder — it holds your infrastructure configuration and state.
  • A Run is like a work order — it tells Terraform to plan and/or apply changes to your infrastructure.
  • A Configuration Version is the blueprint you upload before a run. Without it, Terraform doesn't know what to build.
  • A Variable is a setting you pass in — like AWS_REGION = us-east-1.
  • A State Version is a snapshot of what infrastructure currently exists.

Typical Deployment Flow

Create Workspace → Add Variables → Create Configuration Version → Create Run → (Apply Run if needed)
note

Workspace ID (ws-xxxxx) and Configuration Version ID (cv-xxxxx) are different from Workspace Name. Many nodes require the ID, not the name. Always store these IDs when you create a workspace or configuration version.


Integrating Terraform with Yellow.ai

In a two-tier environment, connect the integration in the Development environment. In a three-tier environment, connect it in Staging or Sandbox. All connected integrations are automatically available in the live environment.

  1. Switch to the Development/Staging environment and go to Extensions > Integrations > Tools > Terraform Management. Alternatively, use the Search box.

  2. In Give account name, enter a unique name for this integration account (lowercase letters, numbers, and underscores only).

  3. Enter your Organization Name. This is the name visible in your HCP Terraform URL — for example, if your URL is https://app.terraform.io/app/my-company/workspaces, your organization name is my-company.

  4. Enter your API Token. To generate one:

    • Log in to app.terraform.io
    • Click your profile icon (top right) → User SettingsTokens
    • Click Create an API token, give it a name, and copy the token value
    note

    The API token must have sufficient permissions to manage workspaces and runs in your organization.

  5. Click Connect.

  6. To connect another account, click +Add Account and repeat the steps. You can add a maximum of 15 accounts.

Terraform integration in Yellow.ai marketplace

Terraform integration credentials — Organization Name and API Token fields


Accessing Terraform Functions via Agent Flow

Once connected, you can add Terraform action nodes anywhere in your agent flows.

  1. Go to Automation and create or open a flow.
  2. At the point where you want to trigger a Terraform action, click Add NodeIntegrationsTerraform Management.
  3. Select the action you want from the dropdown.
note

When multiple accounts are connected, select the appropriate one for each node.

Terraform Management node in Yellow.ai flow builder

The following images show the list of available action nodes you can select from the Terraform Management integration:

Terraform action dropdown in Yellow.ai flow builder

Terraform action nodes list in Yellow.ai flow builder


Action Nodes

Get Organization

Fetches the details of your connected Terraform organization. No input is required — it uses the organization name you provided during setup.

Required parameters: None

Sample response:

{
"data": {
"id": "my-company",
"type": "organizations",
"attributes": {
"name": "my-company",
"email": "[email protected]",
"plan-identifier": "free_standard",
"managed-resource-count": 10
}
}
}

📖 Terraform API Reference — Show an Organization


Get Workspace

Fetches the details of a specific workspace using its name.

Required parameters:

ParameterTypeDescription
Workspace NameStringThe exact name of the workspace (e.g., production-infra).

Sample response:

{
"data": {
"id": "ws-WH1sqSKMgKygSZrA",
"type": "workspaces",
"attributes": {
"name": "my-test-workspace",
"locked": false,
"terraform-version": "1.15.6",
"execution-mode": "remote",
"resource-count": 0,
"auto-apply": false,
"description": "Testing Yellow.ai integration"
}
}
}
tip

Save the id field (ws-xxxxx) from this response — you'll need it for Lock/Unlock, Create Run, and other nodes that require a Workspace ID.

📖 Terraform API Reference — Show Workspace


List Workspaces

Lists all workspaces in your organization. You can optionally filter by name or paginate the results.

Optional parameters:

ParameterTypeDescription
Search by NameStringFilters workspaces whose name contains this text.
Page SizeNumberNumber of workspaces to return per page (e.g., 20).
Page NumberNumberWhich page of results to return (starts at 1).

Sample response:

{
"data": [
{
"id": "ws-WH1sqSKMgKygSZrA",
"type": "workspaces",
"attributes": {
"name": "my-test-workspace",
"locked": false,
"terraform-version": "1.15.6",
"resource-count": 0
}
}
]
}

📖 Terraform API Reference — List Workspaces


Create Workspace

Creates a new workspace in your Terraform organization.

Required parameters:

ParameterTypeDescription
Workspace NameStringThe name for the new workspace. Use only letters, numbers, hyphens, and underscores.

Optional parameters:

ParameterTypeDescription
DescriptionStringA short description of what this workspace manages.
Terraform VersionStringThe Terraform version to use (e.g., 1.6.0). Defaults to your org's default.
Auto ApplyBooleanIf true, changes are applied automatically after planning. If false, someone must manually approve.
Working DirectoryStringThe subdirectory within your repo that holds Terraform files (leave empty if files are at root).

Sample response:

{
"data": {
"id": "ws-WH1sqSKMgKygSZrA",
"type": "workspaces",
"attributes": {
"name": "my-new-workspace",
"locked": false,
"terraform-version": "1.15.6",
"auto-apply": false,
"description": "Created via Yellow.ai"
}
}
}
tip

Save the workspace id (ws-xxxxx) from the response — you'll need it for creating runs and variables.

📖 Terraform API Reference — Create a Workspace


Update Workspace

Updates the settings of an existing workspace. Only the fields you provide will change — everything else stays the same.

Required parameters:

ParameterTypeDescription
Workspace NameStringThe current name of the workspace to update.
New NameStringThe new name for the workspace (required by the API even if you're not renaming it — pass the same name to keep it unchanged).

Optional parameters:

ParameterTypeDescription
DescriptionStringUpdated description.
Terraform VersionStringUpdated Terraform version.
Auto ApplyBooleanEnable or disable auto-apply.
Working DirectoryStringUpdated working directory path.

Sample response:

{
"data": {
"id": "ws-WH1sqSKMgKygSZrA",
"type": "workspaces",
"attributes": {
"name": "my-updated-workspace",
"auto-apply": true,
"terraform-version": "1.15.6"
}
}
}

📖 Terraform API Reference — Update a Workspace


Delete Workspace

Permanently deletes a workspace from your Terraform organization. All runs, variables, and state history for this workspace will be lost.

Required parameters:

ParameterTypeDescription
Workspace NameStringThe name of the workspace to delete.

Sample response:

{
"status": 204,
"message": "Workspace successfully deleted."
}
note

A successful delete returns HTTP 204 No Content. The response body is empty on success. The sample above is a Yellow.ai wrapper response.

warning

This action is irreversible. Add a confirmation step in your agent flow before executing this node.

📖 Terraform API Reference — Delete a Workspace


Lock Workspace

Locks a workspace so that no new runs can be queued. Useful during maintenance or when you want to pause all deployments for a workspace.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx). Use Get Workspace to find this.

Optional parameters:

ParameterTypeDescription
Lock ReasonStringA short message explaining why you're locking this workspace (e.g., "maintenance window").

Sample response:

{
"data": {
"id": "ws-WH1sqSKMgKygSZrA",
"type": "workspaces",
"attributes": {
"locked": true,
"name": "my-test-workspace"
}
}
}
note

This node requires the Workspace ID (ws-xxxxx), not the workspace name. Get the ID first using the Get Workspace node.

📖 Terraform API Reference — Lock a Workspace


Unlock Workspace

Unlocks a previously locked workspace, allowing runs to be queued again.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).

Sample response:

{
"data": {
"id": "ws-WH1sqSKMgKygSZrA",
"type": "workspaces",
"attributes": {
"locked": false,
"name": "my-test-workspace"
}
}
}

📖 Terraform API Reference — Unlock a Workspace


Create Configuration Version

A Configuration Version is a required checkpoint before you can trigger a run. Think of it as telling Terraform "I'm about to send you a new set of instructions — get ready." The response gives you an upload-url (where you send the config files) and a cv-xxxxx ID (which you pass into Create Run).

note

In most automated flows driven from Yellow.ai, you create a Configuration Version and then immediately pass its ID into Create Run. You do not need to upload files manually — the configuration version acts as a trigger placeholder when you're driving runs via the API with a pre-uploaded configuration.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).

Optional parameters:

ParameterTypeDescription
Auto Queue RunsBooleanIf true, a run is automatically queued once the config is uploaded. Defaults to false.
Speculative (Plan Only)BooleanIf true, this config version will only run a plan — it will never apply changes. Useful for previewing what Terraform would do.

Sample response:

{
"data": {
"id": "cv-ntv3HbhJqvFzamy7",
"type": "configuration-versions",
"attributes": {
"auto-queue-runs": false,
"status": "pending",
"upload-url": "https://archivist.terraform.io/v1/object/some-long-url"
}
}
}
tip

Save the id field (cv-xxxxx) — you'll pass it into Create Run as the Configuration Version ID.

Create Configuration Version node in Yellow.ai flow builder

📖 Terraform API Reference — Create a Configuration Version


Get Configuration Version

Checks the current status of a configuration version. Use this to confirm a configuration version has been successfully uploaded before triggering a run.

Required parameters:

ParameterTypeDescription
Configuration Version IDStringThe ID of the configuration version (format: cv-xxxxx).

Sample response:

{
"data": {
"id": "cv-ntv3HbhJqvFzamy7",
"type": "configuration-versions",
"attributes": {
"status": "uploaded",
"auto-queue-runs": false,
"speculative": false,
"source": "tfe-api"
}
}
}

Status values explained:

StatusWhat it means
pendingConfiguration version was created but no files uploaded yet.
uploadedFiles have been received and the config version is ready to use.
erroredSomething went wrong during upload.

📖 Terraform API Reference — Show a Configuration Version


Create Run

Triggers a Terraform run (plan + optional apply) in a workspace. This is the most important action in the integration — it kicks off your infrastructure deployment.

Important — Full JSON Body Required

The Create Run node has a nested JSON structure that you must fill in completely. Unlike simpler nodes, this node requires you to provide the entire data object — including both attributes (what the run should do) and relationships (which workspace and config version to use). If any part is missing or wrong, Terraform will reject the request.

What you need before creating a run:

  1. A Workspace ID (ws-xxxxx) — get this from Get Workspace or Create Workspace.
  2. A Configuration Version ID (cv-xxxxx) — get this from Create Configuration Version.

Required parameters:

You must pass the following complete JSON structure into the Data field:

{
"data": {
"type": "runs",
"attributes": {
"message": "Triggered from Yellow.ai",
"is-destroy": false,
"auto-apply": true
},
"relationships": {
"workspace": {
"data": {
"type": "workspaces",
"id": "ws-xxxxx"
}
},
"configuration-version": {
"data": {
"type": "configuration-versions",
"id": "cv-xxxxx"
}
}
}
}
}

Breakdown of each field:

FieldWhereTypeDescription
data.attributes.messageattributesStringA label for this run, visible in the Terraform UI (e.g., "deployment", "triggered by helpdesk").
data.attributes.is-destroyattributesBooleanSet to true to destroy all managed infrastructure. Set to false for a normal apply.
data.attributes.auto-applyattributesBooleanSet to true to apply automatically after planning. Set to false to require manual approval using Apply Run.
data.relationships.workspace.data.idrelationshipsStringYour workspace ID (ws-xxxxx).
data.relationships.configuration-version.data.idrelationshipsStringYour configuration version ID (cv-xxxxx).
note

The type fields ("runs", "workspaces", "configuration-versions") are fixed values — always use exactly these strings. Do not change them.

Real example — deploy to production with auto-apply:

{
"data": {
"type": "runs",
"attributes": {
"message": "production deployment",
"is-destroy": false,
"auto-apply": true
},
"relationships": {
"workspace": {
"data": {
"type": "workspaces",
"id": "ws-WH1sqSKMgKygSZrA"
}
},
"configuration-version": {
"data": {
"type": "configuration-versions",
"id": "cv-ntv3HbhJqvFzamy7"
}
}
}
}
}

Real example — destroy infrastructure:

{
"data": {
"type": "runs",
"attributes": {
"message": "teardown staging environment",
"is-destroy": true,
"auto-apply": false
},
"relationships": {
"workspace": {
"data": {
"type": "workspaces",
"id": "ws-WH1sqSKMgKygSZrA"
}
},
"configuration-version": {
"data": {
"type": "configuration-versions",
"id": "cv-ntv3HbhJqvFzamy7"
}
}
}
}
}

Sample response:

{
"data": {
"id": "run-CZcmD7eagjhyX0vN",
"type": "runs",
"attributes": {
"status": "pending",
"message": "production deployment",
"is-destroy": false,
"auto-apply": true
}
}
}
tip

Save the id field (run-xxxxx) from the response — use it to check status with Get Run or to approve with Apply Run.

Create Run node in Yellow.ai flow builder

The following images show how to enter the Workspace ID, Configuration Version ID, and other data required for the Create Run node:

Create Run node — entering the CV and workspace data

Create Run node — Workspace ID field

📖 Terraform API Reference — Create a Run


Get Run

Fetches the current details and status of a run using its Run ID.

Required parameters:

ParameterTypeDescription
Run IDStringThe unique ID of the run (format: run-xxxxx).

Sample response:

{
"data": {
"id": "run-CZcmD7eagjhyX0vN",
"type": "runs",
"attributes": {
"status": "applied",
"message": "production deployment",
"is-destroy": false,
"created-at": "2026-06-15T09:00:00.000Z",
"status-timestamps": {
"planned-at": "2026-06-15T09:01:00.000Z",
"applied-at": "2026-06-15T09:02:00.000Z"
}
}
}
}

Run status values explained:

StatusWhat it means
pendingRun has been created and is waiting in the queue.
planningTerraform is currently calculating what changes to make.
plannedPlanning is done — waiting for manual approval before applying.
applyingTerraform is actively making changes to your infrastructure.
appliedAll changes have been successfully applied.
erroredSomething went wrong. Check the Terraform UI for logs.
canceledThe run was stopped before completing.
discardedThe plan was reviewed and rejected (not applied).

📖 Terraform API Reference — Get Run Details


List Runs in Workspace

Lists all runs in a workspace. You can filter by status and limit the number of results returned.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).

Optional parameters:

ParameterTypeDescription
Filter by StatusDropdownReturn only runs with this status. Options: applied, errored, planning, planned, canceled, pending.
Page SizeNumberMaximum number of runs to return.

Sample response:

{
"data": [
{
"id": "run-CZcmD7eagjhyX0vN",
"type": "runs",
"attributes": {
"status": "applied",
"message": "production deployment",
"created-at": "2026-06-15T09:00:00.000Z"
}
}
]
}

📖 Terraform API Reference — List Runs in a Workspace


Apply Run

Approves and applies a run that is in planned status (waiting for manual confirmation). Use this when a run was created with auto-apply: false and needs a human to sign off before infrastructure changes are made.

Required parameters:

ParameterTypeDescription
Run IDStringThe unique ID of the run to apply (format: run-xxxxx).

Optional parameters:

ParameterTypeDescription
CommentStringA note to add to the approval (e.g., "Approved by IT ops team").

Sample response:

{
"status": 202,
"message": "Run apply accepted."
}
note

A successful apply request returns HTTP 202 Accepted. The run then moves to applying status. Use Get Run to track progress.

📖 Terraform API Reference — Apply a Run


Cancel Run

Cancels a run that is currently in progress (e.g., in planning or applying status).

Required parameters:

ParameterTypeDescription
Run IDStringThe unique ID of the run to cancel (format: run-xxxxx).

Optional parameters:

ParameterTypeDescription
CommentStringA short reason for canceling (e.g., "Wrong config — canceling to fix").

Sample response:

{
"status": 202,
"message": "Run cancel accepted."
}
warning

Canceling a run mid-apply may result in partial infrastructure changes. Use with caution and verify the workspace state after canceling.

📖 Terraform API Reference — Cancel a Run


Discard Run

Discards a run that has been planned but not yet applied — i.e., a run sitting in planned status waiting for approval. Discarding means "I've seen the plan, I don't want to apply it."

Required parameters:

ParameterTypeDescription
Run IDStringThe unique ID of the run to discard (format: run-xxxxx).

Optional parameters:

ParameterTypeDescription
CommentStringA reason for discarding (e.g., "Plan looks wrong — will re-run after fixing config").

Sample response:

{
"status": 200,
"message": "Run discard accepted."
}
note

Discard only works on runs in planned status. If a run is already in progress, use Cancel Run instead.

📖 Terraform API Reference — Discard a Run


Create Workspace Variable

Creates a variable in a workspace. Variables come in two types:

  • Terraform variables — values passed into your Terraform code (like instance_type = "t3.micro").
  • Environment variables — shell environment variables available during runs (like AWS_ACCESS_KEY_ID).

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).
Variable KeyStringThe name of the variable (e.g., AWS_REGION).
Variable ValueStringThe value of the variable (e.g., us-east-1).
CategoryDropdownterraform for Terraform input variables, env for environment variables.

Optional parameters:

ParameterTypeDescription
DescriptionStringA note explaining what this variable is for.
SensitiveBooleanIf true, the value is write-only — it will never be shown in the UI or API responses again. Use for secrets like API keys.
HCL FormatBooleanIf true, the value is treated as HCL (HashiCorp Configuration Language) rather than a plain string. Use for complex values like lists or maps.

Create Workspace Variable node in Yellow.ai flow builder

Sample response:

{
"data": {
"id": "var-EavQ1LztoRTQHSNT",
"type": "vars",
"attributes": {
"key": "AWS_REGION",
"value": "us-east-1",
"category": "env",
"sensitive": false,
"hcl": false,
"description": "AWS deployment region"
}
}
}
tip

Save the variable id (var-xxxxx) from the response — you'll need it if you want to Update or Delete this variable later.

📖 Terraform API Reference — Create a Variable


List Workspace Variables

Lists all variables (both Terraform and environment) defined in a workspace.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).

Sample response:

{
"data": [
{
"id": "var-EavQ1LztoRTQHSNT",
"type": "vars",
"attributes": {
"key": "AWS_REGION",
"value": "us-east-1",
"category": "env",
"sensitive": false,
"hcl": false
}
}
]
}
note

Sensitive variables will show their value as null in the response — this is expected. Terraform never exposes sensitive values through the API.

📖 Terraform API Reference — List Variables


Update Workspace Variable

Updates the value or settings of an existing workspace variable.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).
Variable IDStringThe unique ID of the variable (format: var-xxxxx). Use List Workspace Variables to find this.
Variable KeyStringThe variable name (required by the API — pass the same key if you're not renaming it).
Variable ValueStringThe new value for the variable.

Optional parameters:

ParameterTypeDescription
DescriptionStringUpdated description.
SensitiveBooleanMark or unmark the variable as sensitive.
HCL FormatBooleanToggle HCL parsing on or off.

Sample response:

{
"data": {
"id": "var-EavQ1LztoRTQHSNT",
"type": "vars",
"attributes": {
"key": "AWS_REGION",
"value": "us-west-2",
"category": "env",
"sensitive": false,
"hcl": false
}
}
}

📖 Terraform API Reference — Update Variables


Delete Workspace Variable

Permanently removes a variable from a workspace.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).
Variable IDStringThe unique ID of the variable (format: var-xxxxx). Use List Workspace Variables to find this.

Sample response:

{
"status": 204,
"message": "Variable successfully deleted."
}
note

A successful delete returns HTTP 204 No Content. The response body is empty on success.

📖 Terraform API Reference — Delete a Variable


Get Current State Version

Fetches the most recent Terraform state for a workspace. The state tells you what infrastructure currently exists and how many resources are managed. Useful for monitoring and auditing.

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).

Sample response:

{
"data": {
"id": "sv-SDboVZC8TCxXEneJ",
"type": "state-versions",
"attributes": {
"created-at": "2026-06-15T09:00:00.000Z",
"size": 940,
"hosted-state-download-url": "https://archivist.terraform.io/v1/object/some-state-url",
"resources-processed": true,
"resource-count": 2,
"terraform-version": "1.15.6"
}
}
}
note

resource-count tells you how many infrastructure resources (servers, databases, networks, etc.) are currently managed by this workspace.

📖 Terraform API Reference — Fetch the Current State Version


List Workspace Resources

Lists all individual infrastructure resources currently managed by a workspace (e.g., EC2 instances, S3 buckets, databases).

Required parameters:

ParameterTypeDescription
Workspace IDStringThe unique ID of the workspace (format: ws-xxxxx).

Optional parameters:

ParameterTypeDescription
Page SizeNumberMaximum number of resources to return per page.

Sample response:

{
"data": [
{
"id": "wsr-xjTF97KLNMA2xeSr",
"type": "workspace-resources",
"attributes": {
"name": "server_name",
"resource-type": "random_pet",
"provider-type": "registry.terraform.io/hashicorp/random",
"module-address": ""
}
}
]
}

📖 Terraform API Reference — List Workspace Resources


Error Reference

All Terraform action nodes return structured errors when something goes wrong. Use the table below to understand what happened and how to fix it.

Error StatusCodeHTTP StatusWhat it meansHow to fix
AUTHENTICATION_FAILURE8001401Your API token is invalid, expired, or missing.Regenerate the token at app.terraform.io under User Settings > Tokens and update it in your Yellow.ai integration config.
RESOURCE_NOT_FOUND8002404The workspace, run, variable, or configuration version ID you provided does not exist.Double-check the ID. Make sure you're using the ws-xxxxx or run-xxxxx format and that the resource wasn't deleted.
INVALID_FIELD_VALUE8001/8004400/422A required field is missing or has an invalid value.Check that all required fields are filled in and that values match the expected type (e.g., boolean true/false, not "true" as a string).
DUPLICATE_WORKSPACE8003409A workspace with that name already exists.Use a different name, or use Get Workspace to check if it already exists.
DUPLICATE_RESOURCE8004422A variable with that key already exists in the workspace.Use List Workspace Variables to check, then Update Workspace Variable instead of creating a new one.
RESOURCE_ACCESS_DENIED9001403Your API token doesn't have permission to perform this action.Check your token's permission scope in Terraform. Some actions (create/delete workspace, apply runs) require admin-level tokens.
CONFLICT8003409The resource is already in the state you're trying to set (e.g., workspace already locked, run already applied).Check current state using Get Workspace or Get Run before retrying.
API_LIMIT_REACHED9002429Terraform's API rate limit has been hit.Wait a moment and retry. Add a delay node in your agent flow between rapid consecutive API calls.