Rebuild App Deployment

Build a failed deployment's commit again, as a new attempt of the same deployment. The build runs as the member who connected the repository. Refused with 409 unless the deployment failed and its repository is still connected. Workspace API keys return 403; use a personal API key or scoped OAuth token.

OAuth scope: api:write.

POST/api/v2/apps/{appId}/deployments/{deploymentId}/rebuild
X-API-Key<token>

Your Agent Serve API key, personal or workspace-scoped. Generate one under Settings, then API Keys. Operations that reject workspace keys say so in their own description.

In: header

Path Parameters

appId*string

App identifier.

Length1 <= length <= 64
deploymentId*string

Deployment identifier.

Length1 <= length <= 64

Request Body

application/json

Workspace scope.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://agentserve.valnoraelric.com/api/v2/apps/string/deployments/string/rebuild" \  -H "X-API-Key: YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "workspaceId": "string"  }'
{
  "data": {
    "deployment": {
      "id": "string",
      "appId": "string",
      "provider": "github",
      "repository": "string",
      "commitSha": "string",
      "branch": "string",
      "authorName": "string",
      "commitMessage": "string",
      "status": "queued",
      "error": "string",
      "attempt": -9007199254740991,
      "versionId": "string",
      "version": "string",
      "liveWorkspaceIds": [
        "string"
      ],
      "dependencyAudit": {
        "tool": "string",
        "high": -9007199254740991,
        "critical": -9007199254740991,
        "unknownRegistries": [
          "string"
        ],
        "error": "string",
        "allowed": true
      },
      "publishRequestedByUserId": "string",
      "publishedAt": "2019-08-24T14:15:22Z",
      "startedAt": "2019-08-24T14:15:22Z",
      "finishedAt": "2019-08-24T14:15:22Z",
      "createdAt": "2019-08-24T14:15:22Z"
    }
  }
}
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Invalid request"
  }
}
{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  }
}
{
  "error": {
    "code": "FORBIDDEN",
    "message": "Insufficient workspace permissions",
    "details": {
      "code": "INSUFFICIENT_WORKSPACE_ROLE"
    }
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Not found"
  }
}
{
  "error": {
    "code": "CONFLICT",
    "message": "The request conflicts with the current state of the resource"
  }
}
{
  "error": {
    "code": "PAYLOAD_TOO_LARGE",
    "message": "Request body is too large"
  }
}
{
  "error": {
    "code": "UNSUPPORTED_MEDIA_TYPE",
    "message": "Request body must be sent as application/json"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "API rate limit exceeded",
    "details": {
      "retryAfter": "2026-01-01T00:00:30.000Z"
    }
  }
}
{
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal server error"
  }
}
{
  "error": {
    "code": "SERVICE_UNAVAILABLE",
    "message": "Service temporarily unavailable"
  }
}