# Error: Workflow timed out after 60 minutes waiting for approval. The workflow has been canceled.

- **ID:** `cicd/circleci-workflow-approval-timeout`
- **Domain:** cicd
- **Category:** runtime_error
- **Verification:** ai_generated
- **Fix Rate:** 88%

## Root Cause

A CircleCI workflow with a manual approval job timed out because the required approver did not approve or reject the job within the default 60-minute timeout period.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| CircleCI CLI 0.1.3000 | active | — | — |
| CircleCI Server 4.0 | active | — | — |

## Workarounds

1. **Use the CircleCI API to approve the job manually: `curl -X POST -H "Circle-Token: $CIRCLE_TOKEN" https://circleci.com/api/v2/workflow/{workflow_id}/approve/{approval_request_id}`. Find the approval_request_id from the workflow's jobs via the API.** (90% success)
   ```
   Use the CircleCI API to approve the job manually: `curl -X POST -H "Circle-Token: $CIRCLE_TOKEN" https://circleci.com/api/v2/workflow/{workflow_id}/approve/{approval_request_id}`. Find the approval_request_id from the workflow's jobs via the API.
   ```
2. **Modify the workflow configuration to remove the approval job for non-production branches, or use a conditional approval: `when: << pipeline.parameters.deploy_to_prod >>` where the parameter defaults to false for development branches.** (80% success)
   ```
   Modify the workflow configuration to remove the approval job for non-production branches, or use a conditional approval: `when: << pipeline.parameters.deploy_to_prod >>` where the parameter defaults to false for development branches.
   ```

## Dead Ends

- **** — Project settings do not control approval timeout; the timeout is fixed per plan (60 minutes for free/paid) and cannot be changed via settings. (90% fail)
- **** — Re-running does not bypass the approval step; the same approval job will be triggered again, and the timeout will recur if no one approves. (85% fail)
