As of September 15, 2019, if you're using the legacy health checks, your application will continue to run and receive health checks but you won't be able to deploy new versions of your application.
This page explains upgrading from the legacy health checks to split health checks.
Verifying your health check type
To verify the type of health checks your application is using, run the following command:
gcloud app describe
If your application is using split health checks, the description should include the following information:
featureSettings: splitHealthChecks: true
Understanding key differences
Before upgrading to split health checks, consider the following important differences between legacy and split health checks:
HTTP requests for split health checks are not forwarded by default. By contrast, legacy health checks forward to the
/_ah/healthpath in your application by default.
Forwarded split health checks must return
200 OKwhen healthy and ready. Legacy health checks consider the following HTTP codes as healthy:
If you do not specify a liveness check path or a readiness check path, by default split health checks only confirm that the VM instance and the Docker container are running. As long as these conditions hold, the VM will continue to receive traffic and remain alive regardless of the app's internal state.
By contrast, when legacy health checks are enabled, if your app's
path starts returning unhealthy HTTP error codes (e.g.
5XX) then legacy health
checks will start failing and the VM will stop receiving traffic and be
If your app depends on the default legacy health check behavior, set the liveness check path and the readiness check path accordingly.
Converting legacy health check options
Each legacy health check option can be rewritten using split health checks as follows:
|Option||Maintaining same behavior in split health checks|
Enabling split health checks
To migrate from legacy health checks to split health checks and avoid seeing
5xx status codes, complete the following steps:
Understand the important differences between legacy and split health checks.
Convert legacy health check options for each version in your application.
Alternatively, you can customize the
readiness_checksection in the
app.yamlfile for each version. For examples, see Liveness checks and Readiness checks.
Run the following command:
gcloud app update --split-health-checks --project [YOUR_PROJECT_ID]
If you used customized settings for legacy health checks, you must remove the
health_checksection from your
Deploy a new major version of your app to start using liveness and readiness health checks.