Skip to content

Successful App Engine deploys fail CI due to broken pipe #3514

@anth-volk

Description

@anth-volk

Problem

The staged App Engine deploy job can report failure even when gcloud app deploy has already completed successfully.

Root cause

The deploy script currently runs:

yes | gcloud app deploy ...

under set -euo pipefail.

When gcloud app deploy succeeds, it exits and closes stdin. The yes process then receives SIGPIPE, emits yes: standard output: Broken pipe, and exits non-zero. Because pipefail is enabled, the whole step is marked failed even though the App Engine version was successfully deployed.

Evidence

In run 24918186779, GitHub Actions logged:

  • Deployed service [default] to [https://staging-2342-b7c5e75-dot-policyengine-api.uc.r.appspot.com]
  • immediately followed by yes: standard output: Broken pipe
  • then Process completed with exit code 1

GCP confirms the deployed staging version exists and serves readiness checks successfully.

Fix

Use gcloud app deploy --quiet instead of piping yes into the command. That preserves non-interactive behavior without producing a false failure after successful deploys.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions