> ## 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.

# Resolve GitHub sync conflicts

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

Asks the builder to resolve the merge conflicts left by a pull from GitHub.

Call this after [Pull changes from GitHub](/api-reference/pull-changes-from-github) returns `error: merge_conflict`. Base44 runs a builder turn over the conflicted files, and one more automatic attempt if publishing the resolution finds that GitHub has moved on. The turn consumes credits like any other builder work, so a workspace that is out of credits gets a 400 and no turn runs, and the call holds the connection until it ends, which can take minutes.

`status` says how it ended. `resolved` means the resolution is published to the repository. `apply_pending` means the resolution is ready and still being applied. `needs_input` means the builder asked a question and is waiting for an answer in the app's chat. `conflict` means the conflicts are still there and the app's chat carries a fresh conflict card. `failed` means the turn produced no outcome.

Resolution lands on the repository's default branch, so run it from the app's main chat rather than with a branch selected. This endpoint allows 20 requests per minute per caller, shared with [Pull changes from GitHub](/api-reference/pull-changes-from-github).

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>



## OpenAPI

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


        Asks the builder to resolve the merge conflicts left by a pull from
        GitHub.


        Call this after [Pull changes from
        GitHub](/api-reference/pull-changes-from-github) returns `error:
        merge_conflict`. Base44 runs a builder turn over the conflicted files,
        and one more automatic attempt if publishing the resolution finds that
        GitHub has moved on. The turn consumes credits like any other builder
        work, so a workspace that is out of credits gets a 400 and no turn runs,
        and the call holds the connection until it ends, which can take minutes.


        `status` says how it ended. `resolved` means the resolution is published
        to the repository. `apply_pending` means the resolution is ready and
        still being applied. `needs_input` means the builder asked a question
        and is waiting for an answer in the app's chat. `conflict` means the
        conflicts are still there and the app's chat carries a fresh conflict
        card. `failed` means the turn produced no outcome.


        Resolution lands on the repository's default branch, so run it from the
        app's main chat rather than with a branch selected. This endpoint allows
        20 requests per minute per caller, shared with [Pull changes from
        GitHub](/api-reference/pull-changes-from-github).


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>
      operationId: >-
        resolve_github_conflicts_api_apps__app_id__github_sync_resolve_conflicts_post
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: ID of the app whose GitHub sync this affects.
            title: App Id
          description: ID of the app whose GitHub sync this affects.
          example: 6820f3a4e7b91d003c45a1f2
      responses:
        '200':
          description: How the resolution run ended.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResolveConflictsResponse'
        '400':
          description: Your workspace is out of credits, so the resolution turn can't run.
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, or you used a workspace API key.
            These endpoints take a personal API key.
        '404':
          description: App not found, or the app has no active GitHub connection.
        '409':
          description: >-
            The builder is busy, or the request is scoped to a branch instead of
            the app's main chat.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded (20 requests per minute).
components:
  schemas:
    ResolveConflictsResponse:
      properties:
        status:
          $ref: '#/components/schemas/ResolveOutcome'
          description: >-
            How the run ended. `resolved` published the resolution,
            `apply_pending` is still applying it, `needs_input` is waiting for
            an answer in the app's chat, `conflict` left the conflicts in place,
            and `failed` produced no outcome.
          example: resolved
      type: object
      required:
        - status
      title: ResolveConflictsResponse
      description: Outcome of a server-initiated conflict-resolution run.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ResolveOutcome:
      type: string
      enum:
        - resolved
        - needs_input
        - apply_pending
        - conflict
        - failed
      title: ResolveOutcome
      description: Final status of a server-initiated resolution run.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````