cicd
runtime_error
ai_generated
partial
Error: Workflow timed out after 60 minutes waiting for approval. The workflow has been canceled.
ID: cicd/circleci-workflow-approval-timeout
88%Fix Rate
83%Confidence
1Evidence
2024-06-12First Seen
Version Compatibility
| Version | Status | Introduced | Deprecated | Notes |
|---|---|---|---|---|
| CircleCI CLI 0.1.3000 | active | — | — | — |
| CircleCI Server 4.0 | active | — | — | — |
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.
generic中文
由于所需的审批者在默认的 60 分钟超时时间内未批准或拒绝作业,带有手动审批作业的 CircleCI 工作流超时。
Official Documentation
https://circleci.com/docs/workflows/#holding-a-workflow-for-manual-approvalWorkarounds
-
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.
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. -
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.
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.
中文步骤
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.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
Common approaches that don't work:
-
90% fail
Project settings do not control approval timeout; the timeout is fixed per plan (60 minutes for free/paid) and cannot be changed via settings.
-
85% 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.