Troubleshoot concurrent operations
When you try to modify your Google Kubernetes Engine (GKE) cluster or its node
pools, your action might be temporarily blocked because another operation is
running. This issue can delay critical updates, cluster administration, and
application deployments.
Use this page to learn how to identify the operation
that's running. Understanding the active operation helps you estimate the delay
and determine when to retry your action.
This information is important for both Application developers, who might
encounter these limits when deploying or modifying applications, and for
Platform admins and operators, who manage the overall cluster lifecycle,
upgrades, and need to troubleshoot blocked administrative tasks. For more
information about the common roles and example tasks that we reference in
Trusted Cloud by S3NS content, see
Common GKE user roles and tasks.
Understand concurrent operation errors
In GKE, a cluster operation is an action that modifies the state
of your cluster's control plane or its node pools. These operations are managed
by GKE and can be initiated by you or by GKE for
maintenance purposes. Common cluster operations include the following:
- Creating or deleting the cluster.
- Upgrading the cluster's control plane version.
- Creating, updating, resizing, or deleting node pools.
- Modifying cluster-level settings, such as enabling or disabling features.
- Automatic control plane repairs initiated by GKE.
When you perform operations on your clusters, you might see error messages
similar to the following:
Cluster is running incompatible operation OPERATION_NAME
Cluster is currently being created, deleted, updated or repaired and cannot be updated
Operation OPERATION_NAME is currently ACTIONING cluster CLUSTER_NAME. Please wait and try again once it is done
These errors can include the following values:
OPERATION_NAME
: the unique ID for an operation
that's already running on your cluster. Use this name to track the status of
this pre-existing operation that's blocking your new operation from
starting.
ACTIONING
: the action that is being performed on
the cluster. For example, Creating
or Updating
.
CLUSTER_NAME
: the name of the cluster that the
operation is targeting.
These errors occur because GKE limits how many operations can run
at the same time to prevent conflicts. Generally, GKE permits
only one operation at the cluster level or one operation per node pool to run
concurrently. GKE also performs its own automatic actions, such
as control plane upgrades, which count toward this limit and can temporarily
block you from starting a new task.
Resolve concurrent operation errors
If you receive an error that indicates that another operation is in progress,
identify the ongoing task and wait for it to finish:
If you don't know the name of the blocking operation, list all ongoing and
pending operations for your cluster:
gcloud container operations list \
--location=LOCATION \
--filter '(targetLink~/clusters/CLUSTER_NAME$ OR targetLink~/clusters/CLUSTER_NAME/) AND status!=DONE' \
--format json
Replace the following:
LOCATION
: the Compute Engine region or zone
(for example, us-central1
or us-central1-a
) for the cluster,
depending on whether your cluster is regional or zonal.
CLUSTER_NAME
: the name of the cluster with the
failing operation.
The output is similar to the following:
{
"name": "operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff",
"operationType": "UPDATE_CLUSTER",
"selfLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff",
"startTime": "2001-01-01T00:00:00.000000000Z",
"status": "RUNNING",
"targetLink": "https://container.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_NAME/nodePools/NODE_POOL_NAME",
"zone": "LOCATION"
}
In the output, review the name
field for each operation. This value is
the name of the operation that's blocking your new operation from starting.
You need this value for the next step.
For more information about the other fields in the output, see the API
documentation for
projects.locations.operations
.
Wait for the operation to complete:
gcloud container operations wait OPERATION_NAME \
--location=LOCATION
Replace OPERATION_NAME
with the name of a blocking
operation from an error message or the preceding step.
This command actively monitors the operation and exits when the operation
is complete.
After the blocking operation has a status of DONE
, retry the
operation that caused the error.
What's next
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[],[],null,["[Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview) [Standard](/kubernetes-engine/docs/concepts/choose-cluster-mode)\n\n*** ** * ** ***\n\nWhen you try to modify your Google Kubernetes Engine (GKE) cluster or its node\npools, your action might be temporarily blocked because another operation is\nrunning. This issue can delay critical updates, cluster administration, and\napplication deployments.\n\nUse this page to learn how to identify the operation\nthat's running. Understanding the active operation helps you estimate the delay\nand determine when to retry your action.\n\nThis information is important for both Application developers, who might\nencounter these limits when deploying or modifying applications, and for\nPlatform admins and operators, who manage the overall cluster lifecycle,\nupgrades, and need to troubleshoot blocked administrative tasks. For more\ninformation about the common roles and example tasks that we reference in\nGoogle Cloud content, see\n[Common GKE user roles and tasks](/kubernetes-engine/enterprise/docs/concepts/roles-tasks).\n\nUnderstand concurrent operation errors\n\nIn GKE, a cluster operation is an action that modifies the state\nof your cluster's control plane or its node pools. These operations are managed\nby GKE and can be initiated by you or by GKE for\nmaintenance purposes. Common cluster operations include the following:\n\n- Creating or deleting the cluster.\n- Upgrading the cluster's control plane version.\n- Creating, updating, resizing, or deleting node pools.\n- Modifying cluster-level settings, such as enabling or disabling features.\n- Automatic control plane repairs initiated by GKE.\n\nWhen you perform operations on your clusters, you might see error messages\nsimilar to the following: \n\n Cluster is running incompatible operation \u003cvar translate=\"no\"\u003eOPERATION_NAME\u003c/var\u003e\n\n Cluster is currently being created, deleted, updated or repaired and cannot be updated\n\n Operation \u003cvar translate=\"no\"\u003eOPERATION_NAME\u003c/var\u003e is currently \u003cvar translate=\"no\"\u003eACTIONING\u003c/var\u003e cluster \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e. Please wait and try again once it is done\n\nThese errors can include the following values:\n\n- \u003cvar translate=\"no\"\u003eOPERATION_NAME\u003c/var\u003e: the unique ID for an operation that's already running on your cluster. Use this name to track the status of this pre-existing operation that's blocking your new operation from starting.\n- \u003cvar translate=\"no\"\u003eACTIONING\u003c/var\u003e: the action that is being performed on the cluster. For example, `Creating` or `Updating`.\n- \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of the cluster that the operation is targeting.\n\nThese errors occur because GKE limits how many operations can run\nat the same time to prevent conflicts. Generally, GKE permits\nonly one operation at the cluster level or one operation per node pool to run\nconcurrently. GKE also performs its own automatic actions, such\nas control plane upgrades, which count toward this limit and can temporarily\nblock you from starting a new task.\n\nResolve concurrent operation errors\n\nIf you receive an error that indicates that another operation is in progress,\nidentify the ongoing task and wait for it to finish:\n\n1. If you don't know the name of the blocking operation, list all ongoing and\n pending operations for your cluster:\n\n gcloud container operations list \\\n --location=\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e \\\n --filter '(targetLink~/clusters/\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e$ OR targetLink~/clusters/\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e/) AND status!=DONE' \\\n --format json\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e: the Compute Engine region or zone (for example, `us-central1` or `us-central1-a`) for the cluster, depending on whether your cluster is regional or zonal.\n - \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of the cluster with the\n failing operation.\n\n The output is similar to the following: \n\n {\n \"name\": \"operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff\",\n \"operationType\": \"UPDATE_CLUSTER\",\n \"selfLink\": \"https://container.googleapis.com/v1/projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e/locations/\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e/operations/operation-0978307200000-00112233-4455-6677-8899-aabbccddeeff\",\n \"startTime\": \"2001-01-01T00:00:00.000000000Z\",\n \"status\": \"RUNNING\",\n \"targetLink\": \"https://container.googleapis.com/v1/projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e/locations/\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e/clusters/\u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e/nodePools/\u003cvar translate=\"no\"\u003eNODE_POOL_NAME\u003c/var\u003e\",\n \"zone\": \"\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e\"\n }\n\n In the output, review the `name` field for each operation. This value is\n the name of the operation that's blocking your new operation from starting.\n You need this value for the next step.\n\n For more information about the other fields in the output, see the API\n documentation for\n [`projects.locations.operations`](/kubernetes-engine/docs/reference/rest/v1/projects.locations.operations).\n2. Wait for the operation to complete:\n\n gcloud container operations wait \u003cvar translate=\"no\"\u003eOPERATION_NAME\u003c/var\u003e \\\n --location=\u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eOPERATION_NAME\u003c/var\u003e with the name of a blocking\n operation from an error message or the preceding step.\n\n This command actively monitors the operation and exits when the operation\n is complete.\n3. After the blocking operation has a status of `DONE`, retry the\n operation that caused the error.\n\nWhat's next\n\n- If you can't find a solution to your problem in the documentation, see\n [Get support](/kubernetes-engine/docs/getting-support) for further help,\n including advice on the following topics:\n\n - Opening a support case by contacting [Cloud Customer Care](/support-hub).\n - Getting support from the community by [asking questions on StackOverflow](http://stackoverflow.com/questions/tagged/google-kubernetes-engine) and using the `google-kubernetes-engine` tag to search for similar issues. You can also join the [`#kubernetes-engine` Slack channel](https://googlecloud-community.slack.com/messages/C0B9GKTKJ/) for more community support.\n - Opening bugs or feature requests by using the [public issue tracker](/support/docs/issue-trackers)."]]