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

# List stuck operations (operator dashboard)

> Returns the cross-rail operator dashboard page of operations needing attention, conformed to the shared recovery vocabulary. Each row carries only the verbs SPB can actually perform on it (a verb SPB cannot perform is absent) and the disposition ('what happens if I do nothing'). Reconciliation cases are shown with their affordances; pre-case stuck-outbound rows the dispatch sweep is retrying are shown informationally with no affordances. No monetary or position fields are returned.



## OpenAPI

````yaml en/openapi/v3-current/spb.yaml get /v1/str/stuck-operations
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    OpenAPI 3.1 surface for Lerian SPB, the direct integration between the
    institution and the Brazilian Payment System (SPB) over the National
    Financial System Network (RSFN). It covers the Reserve Transfer System
    (STR): message registry and capability catalog, operation lifecycle (bank
    transfers, IBS repasses, liquidity transfers, returns and cancellations),
    reserve-account and schedule queries, alçada governance, reconciliation, and
    event delivery.
  license:
    name: Lerian Studio General License
  title: Lerian SPB API
  version: 1.0.0
servers:
  - url: https://spb.sandbox.lerian.net
security: []
tags:
  - description: Immutable audit-record trails for STR operations and lifecycle events.
    name: Audit
  - description: >-
      STR capability catalog describing supported message types and their
      constraints.
    name: Capabilities
  - description: >-
      ICP-Brasil certificate inventory with hot-reloadable rotation and
      activation.
    name: Certificates
  - description: >-
      Maker-checker approval queue for emissions parked above their alçada band:
      list pending, sign (approve), and deny.
    name: EmissionApprovals
  - description: Webhook event-delivery records with retry control for failed dispatches.
    name: EventDeliveries
  - description: Operation event catalog enumerating the emitted domain event types.
    name: Events
  - description: >-
      Inbound GEN-family notice log (GEN0001 connectivity echo, GEN0004
      transmission error, GEN0005 administrative notice).
    name: GenNotices
  - description: >-
      SPB alçada governance: the value-band table and per-message-type signature
      requirements, hot-reloaded at runtime.
    name: Governance
  - description: >-
      Read raw STR message status: list messages and read a single message by
      NUOp.
    name: Messages
  - description: Aggregated operational summaries and metrics across STR operations.
    name: OperationalIntelligence
  - description: >-
      STR operation lifecycle for bank transfers and IBS repasses, including
      returns and cancellations.
    name: Operations
  - description: >-
      Service readiness state covering startup self-probes and dependency
      health.
    name: Readiness
  - description: Reconciliation cases and the actions that resolve operation discrepancies.
    name: Reconciliation
  - description: >-
      STR reports suite: synchronous, date-ranged aggregate reports (financial
      movement, rejected transactions, volumetria) over Lerian SPB's own
      transmission record.
    name: Reports
  - description: >-
      STR0013 reserve-account balance and STR0014 statement (extrato,
      message-mode) queries and their async results.
    name: ReserveQueries
  - description: >-
      GEN0019 participant responsável roster: full-replacement updates announced
      to BACEN.
    name: Responsibles
  - description: STR operating-window schedule governing when operations may be sent.
    name: Schedule
  - description: >-
      STR0001 single-party schedule queries (consulta de horários do STR) and
      their async STR0001R1 grid results.
    name: ScheduleQueries
  - description: Runtime SPB configuration settings for the STR integration.
    name: Settings
  - description: Webhook endpoint registration and management for event delivery.
    name: Webhooks
  - description: >-
      Flow (mandatory order): certificate → readiness → connectivity-test →
      submit. Activate a certificate, confirm the rail reports ready, pass a
      connectivity test, then submit an operation. Each step is its own
      resource; a submit must not be attempted before readiness passes.
    name: onboarding
  - description: >-
      Flow (mandatory order): parent operation SETTLED → return/cancel. A return
      or cancellation is a sub-resource of a settled parent operation; the
      {operationId}/{endToEndID} path segment enforces the parent structurally.
    name: lifecycle
paths:
  /v1/str/stuck-operations:
    get:
      tags:
        - Operations
      summary: List stuck operations (operator dashboard)
      description: >-
        Returns the cross-rail operator dashboard page of operations needing
        attention, conformed to the shared recovery vocabulary. Each row carries
        only the verbs SPB can actually perform on it (a verb SPB cannot perform
        is absent) and the disposition ('what happens if I do nothing').
        Reconciliation cases are shown with their affordances; pre-case
        stuck-outbound rows the dispatch sweep is retrying are shown
        informationally with no affordances. No monetary or position fields are
        returned.
      operationId: listStuckOperations
      parameters:
        - description: >-
            Attention reason filter (e.g. STUCK_OUTBOUND,
            AWAITING_RAIL_RESPONSE, RETRY_FAILED, REQUIRES_OPERATOR_ACTION)
          explode: false
          in: query
          name: reason
          schema:
            description: >-
              Attention reason filter (e.g. STUCK_OUTBOUND,
              AWAITING_RAIL_RESPONSE, RETRY_FAILED, REQUIRES_OPERATOR_ACTION)
            type: string
        - description: Age bucket filter (OVER_5_MIN, OVER_15_MIN, OVER_1_HOUR, OVER_1_DAY)
          explode: false
          in: query
          name: age
          schema:
            description: >-
              Age bucket filter (OVER_5_MIN, OVER_15_MIN, OVER_1_HOUR,
              OVER_1_DAY)
            type: string
        - description: >-
            Canonical operation state filter (e.g. AWAITING_RESPONSE,
            REQUIRES_OPERATOR_ACTION, RECOVERY_IN_PROGRESS)
          explode: false
          in: query
          name: state
          schema:
            description: >-
              Canonical operation state filter (e.g. AWAITING_RESPONSE,
              REQUIRES_OPERATOR_ACTION, RECOVERY_IN_PROGRESS)
            type: string
        - description: Page size (default 50, max 100)
          explode: false
          in: query
          name: limit
          schema:
            default: 50
            description: Page size (default 50, max 100)
            format: int64
            maximum: 100
            minimum: 1
            type: integer
        - description: Opaque pagination cursor
          explode: false
          in: query
          name: cursor
          schema:
            description: Opaque pagination cursor
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StuckPageResponse'
          description: OK
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Error
      security:
        - BearerAuth: []
components:
  schemas:
    StuckPageResponse:
      additionalProperties: false
      properties:
        capabilities:
          $ref: '#/components/schemas/RailCapabilitiesResponse'
          description: >-
            Rail-level honest capability manifest (returned inline to save a
            round trip).
        correlationId:
          description: >-
            Request-scoped correlation identifier echoing X-Request-ID, for
            pivoting from response to trace.
          type: string
        items:
          description: Stuck-operation rows needing operator attention.
          items:
            $ref: '#/components/schemas/StuckOperationViewResponse'
          type:
            - array
            - 'null'
        limit:
          description: Page size applied to this response (max items returned).
          format: int64
          type: integer
        nextCursor:
          description: >-
            Opaque cursor for the next page; absent when exhausted. Presence
            signals more results, absence signals end-of-list.
          type: string
      required:
        - items
        - capabilities
        - limit
        - correlationId
      type: object
    Detail:
      additionalProperties: false
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          examples:
            - ERR-0001
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    RailCapabilitiesResponse:
      additionalProperties: false
      properties:
        hasBudgetReArm:
          description: True when a RESOLVE-class verb re-arms an automatic dispatch budget.
          type: boolean
        hasCrashWindowRecovery:
          description: True only for SPB (evidence-first crash-window recovery).
          type: boolean
        hasDeadlineExpiry:
          description: >-
            True when the rail detects and surfaces operations past a deadline
            (detection-only; an operator terminalizes them, the rail never
            auto-mutates).
          type: boolean
        hasDeadlineSweep:
          description: True when a background sweep re-attempts/ages stuck rows.
          type: boolean
        hasDlqReplay:
          description: True when the rail exposes an operator DLQ list/replay surface.
          type: boolean
        hasInboundStuckDetection:
          description: True when the rail detects inbound messages stuck mid-processing.
          type: boolean
        rail:
          description: Rail this manifest describes.
          examples:
            - spb
          type: string
        replayNowWired:
          description: True when an operator REPLAY actually re-sends stored bytes.
          type: boolean
        supportedVerbs:
          description: Closed set of verbs this rail can ever offer on any row.
          items:
            type: string
          type:
            - array
            - 'null'
      required:
        - rail
        - supportedVerbs
        - hasCrashWindowRecovery
        - hasDeadlineSweep
        - hasBudgetReArm
        - hasDlqReplay
        - hasInboundStuckDetection
        - hasDeadlineExpiry
        - replayNowWired
      type: object
    StuckOperationViewResponse:
      additionalProperties: false
      properties:
        affordances:
          description: >-
            The ONLY source of operator buttons for this row; a verb the rail
            cannot perform is absent.
          items:
            $ref: '#/components/schemas/OperatorAffordanceResp'
          type:
            - array
            - 'null'
        age:
          description: Normalized staleness bucket.
          examples:
            - OVER_15_MIN
          type: string
        correlation:
          $ref: '#/components/schemas/CorrelationResponse'
          description: Protocol identity the row is keyed on (no monetary fields).
        detail:
          additionalProperties: {}
          description: >-
            Render-only per-rail drill-down blob; shown for display only, never
            used to branch logic.
          type: object
        disposition:
          description: What happens if the operator does nothing.
          examples:
            - SYSTEM_RETRYING
          type: string
        rail:
          description: Rail that owns the row (spb or spi).
          examples:
            - spb
          type: string
        reason:
          description: Normalized cause the row needs attention.
          examples:
            - STUCK_OUTBOUND
          type: string
        state:
          description: Canonical operation lifecycle state.
          examples:
            - AWAITING_RESPONSE
          type: string
      required:
        - rail
        - state
        - correlation
        - reason
        - disposition
        - affordances
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    OperatorAffordanceResp:
      additionalProperties: false
      properties:
        reasonCode:
          description: Stable machine code for display + telemetry only.
          type: string
        requirement:
          description: 'Gating tier: DIRECT, APPROVAL_REQUIRED, or ADVISORY.'
          examples:
            - DIRECT
          type: string
        semanticsNote:
          description: Display-only note clarifying what the verb does on this row.
          type: string
        verb:
          description: Operator intent this affordance authorizes on the row.
          examples:
            - RESOLVE
          type: string
      required:
        - verb
        - requirement
      type: object
    CorrelationResponse:
      additionalProperties: false
      properties:
        messageType:
          description: Catalogue message type.
          examples:
            - STR0008
          type: string
        operationRef:
          description: Operation identity the row is keyed on.
          type: string
        protocolRef:
          description: Rail protocol control number / reference.
          type: string
      required:
        - operationRef
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````