Skip to content

feat: manual retry for failed async operations#537

Merged
nicoloboschi merged 1 commit intomainfrom
feat/retry-failed-operations
Mar 10, 2026
Merged

feat: manual retry for failed async operations#537
nicoloboschi merged 1 commit intomainfrom
feat/retry-failed-operations

Conversation

@nicoloboschi
Copy link
Collaborator

Summary

  • Adds POST /v1/default/banks/{bank_id}/operations/{operation_id}/retry API endpoint that re-queues a failed operation (resets status to pending, clears error state, resets retry count)
  • Adds a Retry button in the control plane UI for failed operations, mirroring the existing Cancel button for pending ones
  • Proxied through the control plane with a new retryOperation() client method
  • Returns 409 if the operation is not in failed state
  • Updated OpenAPI spec, all generated clients (Python, TypeScript, Go, Rust), and operations documentation

Test plan

  • Start a retain operation and force it to fail (e.g. bad LLM config), verify it shows as failed in the UI
  • Click Retry — operation should move back to pending and eventually complete
  • Verify POST .../retry on a pending or completed op returns 409
  • Verify POST .../retry on a non-existent op returns 404

- API: POST /v1/default/banks/{bank_id}/operations/{operation_id}/retry
  resets status to pending so the worker re-executes the task
- UI: Retry button on failed operations in the operations view
- Control plane proxy route + ControlPlaneClient.retryOperation()
- Updated OpenAPI spec, all generated clients, and operations docs
@nicoloboschi nicoloboschi force-pushed the feat/retry-failed-operations branch from d343353 to bd3b56f Compare March 10, 2026 15:45
@nicoloboschi nicoloboschi merged commit dcaacbe into main Mar 10, 2026
36 of 37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant