Sentry · Arazzo Workflow

Sentry Run a Seer AI Autofix on an Issue

Version 1.0.0

List available Seer models, start an AI autofix for an issue, then poll until the fix completes.

1 workflow 1 source API 1 provider
View Spec View on GitHub APMApplication MonitoringBug TrackingDeveloper ToolsError TrackingObservabilityPerformance MonitoringReal-Time MonitoringArazzoWorkflows

Provider

sentry-system

Workflows

seer-autofix-issue
Start a Seer autofix for an issue and poll it to completion.
Confirms Seer models are available, starts an autofix analysis for the target issue, and polls the fix state until it is completed or errored, surfacing the suggested fix and any pull request URL.
3 steps inputs: instruction, issueId, organizationIdOrSlug outputs: fixTitle, prUrl, status
1
listModels
listSeerModels
List the Seer AI models available to the organization to confirm AI-assisted analysis is enabled before starting a fix.
2
startFix
startSeerIssueFix
Start the asynchronous Seer autofix analysis for the issue, optionally passing an instruction to steer the AI.
3
pollFixState
retrieveSeerIssueFixState
Poll the current state of the Seer autofix. The step succeeds once the analysis has reached a terminal status of completed or error.

Source API Descriptions

Arazzo Workflow Specification

sentry-system-seer-autofix-issue-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Sentry Run a Seer AI Autofix on an Issue
  summary: List available Seer models, start an AI autofix for an issue, then poll until the fix completes.
  description: >-
    Drives Sentry's Seer AI-assisted debugging end to end. The workflow first
    lists the available Seer models for the organization, kicks off an
    asynchronous autofix analysis against a specific issue, and then polls the
    autofix state until it reaches a terminal status, branching on completion
    versus error. Every step spells out its request inline so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: seerApi
  url: ../openapi/sentry-seer-openapi.yml
  type: openapi
workflows:
- workflowId: seer-autofix-issue
  summary: Start a Seer autofix for an issue and poll it to completion.
  description: >-
    Confirms Seer models are available, starts an autofix analysis for the
    target issue, and polls the fix state until it is completed or errored,
    surfacing the suggested fix and any pull request URL.
  inputs:
    type: object
    required:
    - organizationIdOrSlug
    - issueId
    properties:
      organizationIdOrSlug:
        type: string
        description: The ID or slug of the organization that owns the issue.
      issueId:
        type: string
        description: The ID of the issue to run the Seer autofix against.
      instruction:
        type: string
        description: Optional natural-language instruction to guide the AI fix.
  steps:
  - stepId: listModels
    description: >-
      List the Seer AI models available to the organization to confirm
      AI-assisted analysis is enabled before starting a fix.
    operationId: listSeerModels
    parameters:
    - name: organization_id_or_slug
      in: path
      value: $inputs.organizationIdOrSlug
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstModelId: $response.body#/0/id
  - stepId: startFix
    description: >-
      Start the asynchronous Seer autofix analysis for the issue, optionally
      passing an instruction to steer the AI.
    operationId: startSeerIssueFix
    parameters:
    - name: issue_id
      in: path
      value: $inputs.issueId
    requestBody:
      contentType: application/json
      payload:
        instruction: $inputs.instruction
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      startedStatus: $response.body#/autofix/status
  - stepId: pollFixState
    description: >-
      Poll the current state of the Seer autofix. The step succeeds once the
      analysis has reached a terminal status of completed or error.
    operationId: retrieveSeerIssueFixState
    parameters:
    - name: issue_id
      in: path
      value: $inputs.issueId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/autofix/status
      fixTitle: $response.body#/autofix/fix/title
      prUrl: $response.body#/autofix/fix/pr_url
    onSuccess:
    - name: fixCompleted
      type: end
      criteria:
      - context: $response.body
        condition: $.autofix.status == "completed"
        type: jsonpath
    - name: keepPolling
      type: goto
      stepId: pollFixState
      criteria:
      - context: $response.body
        condition: $.autofix.status == "pending" || $.autofix.status == "processing"
        type: jsonpath
  outputs:
    status: $steps.pollFixState.outputs.status
    fixTitle: $steps.pollFixState.outputs.fixTitle
    prUrl: $steps.pollFixState.outputs.prUrl