Scheduled deploy gating with environment approval in CI
A scheduled deploy that targets a protected environment will pause for the required reviewers, exactly like a manual deploy. If no one approves overnight, the nightly deploy sits "Waiting" instead of shipping.
What this error means
The nightly deploy job shows "Waiting" for an environment protection rule and never completes because no reviewer approves outside working hours.
Deployment to environment "production" is waiting for approval.
Required reviewers must approve before this job can proceed.Common causes
Environment protection requires manual approval
A protected environment with required reviewers pauses any deploy, including scheduled ones, until someone approves.
No auto-approval path for cron
Scheduled runs cannot approve their own environment gate, so an overnight deploy stalls.
How to fix it
Use a separate auto-deployable environment for cron
- Point scheduled deploys at an environment without required reviewers, such as staging.
- Keep required reviewers only on interactive production deploys.
- Or add a wait timer instead of a human approval for cron.
jobs:
nightly-deploy:
environment: staging # no required reviewers
runs-on: ubuntu-latestGate with a wait timer, not a reviewer
If you want a delay but not a human, configure the environment with a wait timer so the scheduled deploy proceeds automatically after the timer.
How to prevent it
- Do not target reviewer-gated environments from cron deploys.
- Reserve manual approval for interactive deploys.
- Use wait timers for automated delay without a human.