Skip to content

Runner transport resend keys on the caller-facing retriable flag #2862

Description

@thymikee

Problem

flagged_retriable in packages/platform-apple/src/runner/runner-error-classification.ts derives the transport's "same-session resend" verdict (retryable) from the caller-facing details.retriable flag. These are different facts:

  • details.retriable tells a caller's poll (for example wait, wait-polling.ts) to try again.
  • retryable tells runner-client.ts to resend the same request.

#2852 had to add an order-dependent app_not_running row just to undo the conflation for APP_NOT_RUNNING.

Today the conflation also resends:

Proposal

Make flagged_retriable key on the fact it means: details.runnerErrorCode === RUNNER_BUSY_RUNNER_CODE (renamed runner_busy). Then delete the app_not_running row. Move the pin in runner-error-classification.test.ts (the generic-flag resend case) and decide explicitly whether startup-phase and provider errors should be resent.

Found in the thermo-nuclear review of #2852; kept out of that PR because it changes retry behavior beyond it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions