# Deployments

Deployments represent a snapshot of a project at a specific point in time. This
snapshot includes all the [sources](/docs/ai-control-plane/reference/concepts/tool-sources)
for a project (uploaded assets), and the generated outputs, such as logs and
[tool definitions](/docs/ai-control-plane/reference/concepts/tool-definitions).
The tools in use by a project's MCP servers are always based on the most recent
successful deployment, known as the active deployment.

A project's deployment history can be accessed from the **Deployments** page:

![Deployments page](/assets/docs/gram/img/concepts/deployments/deployments-page.png)

## Creating deployments

A deployment is created whenever a new source is added, or an existing one is
updated or removed — uploading an OpenAPI document, pushing a function, or
adding an external MCP server all trigger a deployment. Deployments are
immutable: each change produces a new deployment that carries forward the
unchanged sources from the previous one.

Once the deployment process is finished, tool definitions generated from it can
be used in [toolsets](/docs/ai-control-plane/reference/concepts/toolsets). If a
deployment includes updates to existing sources, any dependent tool
definitions, toolsets, and MCP servers are updated automatically.

## Deployment lifecycle

Each deployment moves through a fixed set of statuses:

- **Created** — the deployment has been recorded but processing hasn't started.
- **Pending** — sources are being processed into tool definitions.
- **Completed** — processing succeeded, and the deployment becomes the active deployment.
- **Failed** — processing failed, and the previous successful deployment remains active.

Two actions on the **Deployments** page manage failures and rollbacks:

- **Retry** — re-run the latest deployment after a failure.
- **Redeploy** — re-run an older completed deployment, effectively rolling back to it.

## Troubleshooting

Information about each deployment can be accessed from the **Deployments** page
of a project. Deployment logs, sources, and tool definitions can be viewed
after clicking on a specific deployment. Deployment logs are especially useful
for debugging issues with sources that caused a deployment to fail, or
discovering why a tool was skipped when being created or updated from a source.

![Deployments logs](/assets/docs/gram/img/concepts/deployments/failed-deployment-logs.png)
