# APPROVAL_REVIEW_REQUIRED

- Surface: API
- HTTP status: 409
- Recommended action: `REVIEW_APPROVAL_REQUEST`
- Details: `{ approvalRequestId: string, status: "pending", policyContexts: Array<{ environmentId: string, changeTypes: PolicyChangeType[], level: ApprovalPolicyLevel }>, recommendedAction: "REVIEW_APPROVAL_REQUEST" }`

## Cause

The Environment Policy gates this change at `confirm`, and the call carried no inline `review`. A durable Approval Request now exists and is pending.

## Fix

Review the request in `details.approvalRequestId`. Do not resend the mutation in parallel: that opens a second request for the same change. To apply in one call next time, send `review: { action: "approve_and_apply" }` with the mutation. `details.policyContexts` names which Environment and change types triggered the gate.

## Related

- [APPROVAL_REVIEW_FORBIDDEN](https://splitch.dev/docs/error/APPROVAL_REVIEW_FORBIDDEN)
- [APPROVAL_REQUEST_STALE](https://splitch.dev/docs/error/APPROVAL_REQUEST_STALE)
- [IDEMPOTENCY_KEY_CONFLICT](https://splitch.dev/docs/error/IDEMPOTENCY_KEY_CONFLICT)

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