> ## Documentation Index
> Fetch the complete documentation index at: https://www.ravion.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Roll an EKS workload's Helm release back

> Roll the Helm release behind an EKS workload back to a revision already in its history. POST /deployment-resources/{id}/rollback in the Ravion API reference.



## OpenAPI

````yaml https://api.ravion.com/openapi.yaml post /deployment-resources/{id}/rollback
openapi: 3.0.0
info:
  title: Ravion
  version: 0.0.0
servers:
  - url: https://api.ravion.com
security:
  - BearerAuth: []
tags:
  - name: Projects
  - name: Environments
  - name: Pipelines
  - name: PipelineRuns
  - name: TerraformResources
  - name: TerraformExecutionSummaries
  - name: PipelineStepExecutions
  - name: AwsCloudWatch
  - name: PipelineVersions
  - name: Organizations
  - name: Stacks
  - name: StackWorkspaces
  - name: Auth
  - name: OAuth
  - name: User
  - name: Health
  - name: Memberships
  - name: ServiceAccounts
  - name: AwsDefaultNetworks
  - name: AwsAccounts
  - name: ApiKeys
  - name: AwsAmp
  - name: EksPrometheus
  - name: EksLoki
  - name: ExecutionEnvironments
  - name: ModuleDefinitions
  - name: ModuleCategories
  - name: ModuleVersions
  - name: ModuleInstances
  - name: DefaultValueDefinitions
  - name: DefaultValues
  - name: CodeSources
  - name: Github
  - name: Gitlab
  - name: Git
  - name: Values
  - name: Deployments
  - name: DeploymentResources
  - name: InfrastructureEvents
  - name: WebSocket
  - name: Domains
  - name: AcmCertificates
  - name: Describe
  - name: Reports
paths:
  /deployment-resources/{id}/rollback:
    post:
      tags:
        - DeploymentResources
      summary: Roll an EKS workload's Helm release back
      description: |-
        Roll the Helm release behind an EKS workload back to a revision
        already in its history. Unlike `/deployments/{id}/rollback` this
        creates no deployment record and runs no pipeline — it is the
        imperative recovery for a workload that regressed because of the
        deploy that preceded it.
      operationId: RollbackDeploymentResource
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                data:
                  $ref: '#/components/schemas/DeploymentResource.RollbackRequest'
              required:
                - data
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  data:
                    $ref: '#/components/schemas/DeploymentResource.RollbackResult'
                required:
                  - data
                type: object
          description: The request has succeeded.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The request is invalid or malformed.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You are not authenticated
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: You do not have permission to access this resource.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: The server cannot find the requested resource.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Client error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors.UserFacingErrorData'
          description: Server error
components:
  schemas:
    DeploymentResource.RollbackRequest:
      additionalProperties: false
      description: Which revision to reinstate.
      properties:
        revision:
          description: |-
            Helm's own revision number, from the release's history — not a
            Ravion identifier. Required and must be positive: `helm rollback`
            with no revision means "the previous one", and after a failed
            upgrade the previous revision and the last revision known to have
            WORKED are not the same one, so the caller has to say which it
            means.

            It is validated against the revisions Ravion RECORDED for this
            module instance's prior successful deploys, and then again by the
            agent against Helm's actual in-cluster history. Both checks are
            needed and neither subsumes the other: the control plane cannot
            read a private cluster's release Secrets, and Helm prunes its
            history to `--max-history`, so a revision Ravion recorded may no
            longer be there to reinstate.
          format: int32
          type: integer
        timeoutSeconds:
          description: |-
            Seconds bounding the whole rollback, Helm's own wait included.
            Omitted takes the agent's default. Clamped on both ends.
          format: int32
          type: integer
      required:
        - revision
      type: object
    DeploymentResource.RollbackResult:
      additionalProperties: false
      description: What Helm did.
      properties:
        appVersion:
          type: string
        chartVersion:
          type: string
        detail:
          description: Anything else worth saying about the outcome. Prose.
          type: string
        fromRevision:
          description: |-
            The revision that was live before the rollback, read before it
            happened. Without it a reader cannot tell what was undone.
          format: int32
          type: integer
        namespace:
          type: string
        releaseName:
          type: string
        revision:
          description: |-
            The revision Helm ended on, which is NOT `targetRevision`. Helm
            records a rollback as a new revision whose content is the
            target's, which is what keeps the history append-only and the
            rollback itself reversible.
          format: int32
          type: integer
        status:
          description: |-
            Helm's own release status, passed through as Helm's string rather
            than mapped onto an enum of ours — the set is Helm's to change and
            a stale mapping would report a status that does not exist.
          type: string
        summary:
          description: One line for a toast or a timeline row. Prose.
          type: string
        targetRevision:
          description: The revision the caller asked to reinstate.
          format: int32
          type: integer
      required:
        - namespace
        - releaseName
        - fromRevision
        - targetRevision
        - revision
        - summary
      type: object
    Errors.UserFacingErrorData:
      additionalProperties: false
      description: |-
        User-facing error presentation data.
        This is what the API returns to the frontend after formatting ErrorData
        using CEL templates from the error registry.

        Used for both:
        - Error fields on domain models (e.g., PipelineRun.error)
        - API error response bodies (HTTP 4xx/5xx responses)
      properties:
        action:
          allOf:
            - $ref: '#/components/schemas/Errors.Action'
          description: Optional action to help resolve the error
        code:
          description: Full error code, e.g., "Ravion:Pipeline:NOT_FOUND"
          type: string
        description:
          description: Additional description with more details
          type: string
        details:
          description: Structured details rendered as user-facing sections.
          items:
            $ref: '#/components/schemas/Errors.UserFacingErrorDetailSection'
          type: array
        isInternal:
          description: >-
            Indicates whether this error is internal (only set when
            ShowInternal=true).

            This allows SUPERADMINs to identify internal errors while viewing
            full details.
          type: boolean
        message:
          description: Main error message (required)
          type: string
        metadata:
          additionalProperties: {}
          description: >-
            Error params/metadata. Stripped for internal errors unless
            superadmin.
          type: object
        requestId:
          description: Request ID for correlating errors with server logs.
          type: string
      required:
        - code
        - message
      type: object
    Errors.Action:
      additionalProperties: false
      description: Action to help user resolve the error
      properties:
        label:
          description: Button/link label text
          type: string
        url:
          description: URL to navigate to for resolution
          type: string
      required:
        - label
        - url
      type: object
    Errors.UserFacingErrorDetailSection:
      additionalProperties: false
      description: Structured user-facing error detail section.
      properties:
        items:
          description: List of detail values for this section.
          items:
            type: string
          type: array
        object:
          additionalProperties: {}
          description: Structured detail payload for object rendering.
          type: object
        render:
          description: Rendering hint for clients. Valid values are list or object.
          type: string
        title:
          description: Detail section title shown in the UI.
          type: string
      required:
        - title
        - render
      type: object
  securitySchemes:
    BearerAuth:
      scheme: Bearer
      type: http

````