# APPROVAL_REQUEST_STALE

- Surface: API
- HTTP status: 409
- Recommended action: `REFRESH_AND_REPROPOSE`
- Details: `{ approvalRequestId: string, targetVersion: string, currentTargetVersion: string, recommendedAction: "REFRESH_AND_REPROPOSE" }`

## Cause

The target changed after the request was proposed, so approving it would apply a diff computed against state that no longer exists. The request is terminal.

## Fix

Read the current state and create a new request from it. `details.targetVersion` is what the request was built against and `details.currentTargetVersion` is what is live now. Stale is not retryable: there is nothing to re-approve.

## Related

- [APPROVAL_REQUEST_RESOLVED](https://splitch.dev/docs/error/APPROVAL_REQUEST_RESOLVED)
- [APPROVAL_REVIEW_REQUIRED](https://splitch.dev/docs/error/APPROVAL_REVIEW_REQUIRED)

Source: https://splitch.dev/docs/error/APPROVAL_REQUEST_STALE