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

# Retry Asset

> Retry a failed asset if its last run failed with a retryable error.

Starts a new ``RetryAssetWorkflow`` keyed on the asset, reuses the
cached sidekick output blob from the previous run so successful
sidekicks short-circuit, and re-runs only what failed. The submission
transitions back to ``processing`` while the retry is in flight and
converges to ``complete`` or ``failed`` via the worker's
``reconcile_submission_status`` activity.

Authentication: Requires X-API-Key header with valid API key.

Raises:
    409: Asset is not in ``failed`` state, last error was not retryable,
        ``retry.max_customer_attempts`` reached, the submission's
        source isn't supported, or a retry is already in flight.
        (Handled globally by the ``AssetNotRetryableError`` /
        ``AssetRetryInProgressError`` exception handlers.)
    422: If path parameters fail validation.



## OpenAPI

````yaml post /api/submissions/{submission_id}/assets/{asset_id}/retry
openapi: 3.1.0
info:
  title: MediaMagic Verify Integrations API
  description: An API for MediaMagic Verify integrations.
  version: 1.0.0
servers:
  - url: https://api.northell.io/nhl/prod/mediamagic-verify-integrations
    description: prod
security: []
paths:
  /api/submissions/{submission_id}/assets/{asset_id}/retry:
    post:
      tags:
        - submissions
      summary: Retry Asset
      description: |-
        Retry a failed asset if its last run failed with a retryable error.

        Starts a new ``RetryAssetWorkflow`` keyed on the asset, reuses the
        cached sidekick output blob from the previous run so successful
        sidekicks short-circuit, and re-runs only what failed. The submission
        transitions back to ``processing`` while the retry is in flight and
        converges to ``complete`` or ``failed`` via the worker's
        ``reconcile_submission_status`` activity.

        Authentication: Requires X-API-Key header with valid API key.

        Raises:
            409: Asset is not in ``failed`` state, last error was not retryable,
                ``retry.max_customer_attempts`` reached, the submission's
                source isn't supported, or a retry is already in flight.
                (Handled globally by the ``AssetNotRetryableError`` /
                ``AssetRetryInProgressError`` exception handlers.)
            422: If path parameters fail validation.
      operationId: retry_asset_api_submissions__submission_id__assets__asset_id__retry_post
      parameters:
        - name: submission_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Submission Id
        - name: asset_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Asset Id
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSubmissionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKey: []
components:
  schemas:
    CreateSubmissionResponse:
      properties:
        submissionId:
          type: string
          format: uuid
          title: Submissionid
          description: Created submission ID
        workflowId:
          type: string
          title: Workflowid
          description: Workflow ID (job tracking ID)
        ablyChannel:
          type: string
          title: Ablychannel
          description: Ably channel for real-time updates
        status:
          $ref: '#/components/schemas/SubmissionStatus'
          description: Submission status
        assets:
          items:
            $ref: '#/components/schemas/AssetCreatedResponse'
          type: array
          title: Assets
          description: Created assets
        skippedTags:
          items:
            $ref: '#/components/schemas/SkippedTagResponse'
          type: array
          title: Skippedtags
          description: >-
            Tags refused by value-policy governance. The submission succeeded
            (partial success, BR-13); only these specific tags were not applied.
      type: object
      required:
        - submissionId
        - workflowId
        - ablyChannel
        - status
        - assets
      title: CreateSubmissionResponse
      description: Response model for submission creation.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SubmissionStatus:
      type: string
      enum:
        - uploading
        - submitted
        - queued
        - processing
        - complete
        - failed
        - partial
      title: SubmissionStatus
    AssetCreatedResponse:
      properties:
        assetId:
          type: string
          format: uuid
          title: Assetid
          description: Created asset ID
        versionGroupId:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Versiongroupid
          description: Version group ID
        versionNumber:
          type: integer
          title: Versionnumber
          description: Version number
          default: 1
      type: object
      required:
        - assetId
      title: AssetCreatedResponse
      description: Summary of a created asset within a submission.
    SkippedTagResponse:
      properties:
        key:
          type: string
          title: Key
          description: Tag key that was refused.
        value:
          type: string
          title: Value
          description: Tag value that was refused.
        reason:
          $ref: '#/components/schemas/TagRefusalReason'
          description: >-
            Governance refusal reason. One of: 'value_creation_not_allowed'
            (controlled key, unknown value), 'plain_key_takes_no_value' (plain
            key with a value supplied), 'key_archived' (key was archived/merged
            away — recreate or use the merge target).
      type: object
      required:
        - key
        - value
        - reason
      title: SkippedTagResponse
      description: >-
        A tag that was refused by value-policy governance (partial success,
        BR-13).


        ``reason`` is a :class:`~midmarket_core.domain.tags.TagRefusalReason`
        member.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    TagRefusalReason:
      type: string
      enum:
        - value_creation_not_allowed
        - plain_key_takes_no_value
        - key_archived
        - multiple_values_not_allowed
      title: TagRefusalReason
      description: >-
        Why an integration-pushed tag was refused (partial-success wire
        contract, BR-13).
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'Workspace-scoped API key. Format: sk_live_{64 hex chars}'
      x-default: sk_live_your_api_key_here

````