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

# Retry checkpoint build

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Starts a new preview build for a [checkpoint](/developers/references/app-management/get-started/concepts#checkpoints) and returns without waiting for it to finish.

Use it when a checkpoint's `preview_status` in [List checkpoints](/api-reference/list-checkpoints) is `failed`. It works on a checkpoint in any state. When the checkpoint's commit already has a build, nothing is rebuilt and the checkpoint is marked `ready` straight away.

The build runs in the background. Poll [List checkpoints](/api-reference/list-checkpoints) and watch the checkpoint's `preview_status` until it's `ready` or `failed`. When it fails, `build_error.message` says why.

Only one build of a commit runs at a time. Retrying while another build of the same commit is still running doesn't start a second one in parallel. The retry waits for that build and only builds again if it didn't succeed. If the wait runs too long, the checkpoint is marked `failed` with a `build_error.message` saying it timed out waiting for another build, and you can retry once that build has finished.

<Warning>A checkpoint whose `git_commit_hash` is `null` was saved before the app's code was kept in git. Retrying its build first saves that checkpoint's code to the app as a new commit, which changes the app's current code.</Warning>

<Note>This endpoint accepts a personal API key. A read-only key is refused, and workspace API keys are not accepted.</Note>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json post /api/apps/{app_id}/app-checkpoints/{checkpoint_id}/retry-build
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/apps/{app_id}/app-checkpoints/{checkpoint_id}/retry-build:
    post:
      summary: Retry checkpoint build
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Starts a new preview build for a
        [checkpoint](/developers/references/app-management/get-started/concepts#checkpoints)
        and returns without waiting for it to finish.


        Use it when a checkpoint's `preview_status` in [List
        checkpoints](/api-reference/list-checkpoints) is `failed`. It works on a
        checkpoint in any state. When the checkpoint's commit already has a
        build, nothing is rebuilt and the checkpoint is marked `ready` straight
        away.


        The build runs in the background. Poll [List
        checkpoints](/api-reference/list-checkpoints) and watch the checkpoint's
        `preview_status` until it's `ready` or `failed`. When it fails,
        `build_error.message` says why.


        Only one build of a commit runs at a time. Retrying while another build
        of the same commit is still running doesn't start a second one in
        parallel. The retry waits for that build and only builds again if it
        didn't succeed. If the wait runs too long, the checkpoint is marked
        `failed` with a `build_error.message` saying it timed out waiting for
        another build, and you can retry once that build has finished.


        <Warning>A checkpoint whose `git_commit_hash` is `null` was saved before
        the app's code was kept in git. Retrying its build first saves that
        checkpoint's code to the app as a new commit, which changes the app's
        current code.</Warning>


        <Note>This endpoint accepts a personal API key. A read-only key is
        refused, and workspace API keys are not accepted.</Note>
      operationId: >-
        retry_checkpoint_build_api_apps__app_id__app_checkpoints__checkpoint_id__retry_build_post
      parameters:
        - name: checkpoint_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the checkpoint, as returned in `id` by [List
              checkpoints](/api-reference/list-checkpoints).
            title: Checkpoint Id
          description: >-
            ID of the checkpoint, as returned in `id` by [List
            checkpoints](/api-reference/list-checkpoints).
          example: 6886b8d390dc7e2f4a2c91b3
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app.
            title: App Id
          description: ID of the app.
          example: 6820f3a4e7b91d003c45a1f2
      responses:
        '200':
          description: Where the build stands, and the commit being built.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetryCheckpointBuildResponse'
        '400':
          description: The checkpoint has no commit to build.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, or you used a read-only key or a
            workspace API key. These endpoints take a full-access personal API
            key.
        '404':
          description: App not found, or the app has no checkpoint with this ID.
        '409':
          description: >-
            The app's main line is protected, so its state can't be changed
            directly.
components:
  schemas:
    RetryCheckpointBuildResponse:
      properties:
        status:
          type: string
          enum:
            - building
            - ready
            - skipped
          title: Status
          description: >-
            Where the build stands when the call returns. Either `building` (the
            build started in the background), `ready` (the checkpoint's commit
            was already built, so nothing was rebuilt), or `skipped` (the app
            was imported from an external repository, and those apps have no
            preview build).
          example: building
        git_commit_hash:
          type: string
          title: Git Commit Hash
          description: >-
            Git commit hash of the code being built, the same as the
            checkpoint's `git_commit_hash`.
          example: a1b2c3d4e5f67890abcdef1234567890abcdef12
      type: object
      required:
        - status
        - git_commit_hash
      title: RetryCheckpointBuildResponse
      description: Where a checkpoint's preview build stands when the call returns.
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: 'Personal access token, sent as `Authorization: Bearer <token>`.'

````