Shrink action says "There are no available nodes to move to to execute a shrink" but there are qualifying nodes

Whenever I try to perform a shrink operation on an index using ISM I always get the error " There are no available nodes to move to to execute a shrink. Delaying until node becomes available." I’ve 2x-checked my nodes and they have way more than ample space to hold the 2x-shard size required to perform a shrink.

I’ve tried this on a non-monolithic cluster (dedicated data nodes, coord-nodes, master-node, warm-nodes) and also on a simple 4-node cluster where all nodes are performing all of the duties and I’m getting the same error.

I’ve looked through the kotlin code and all logic seems correct and I can’t find any glaring logic bugs. I’ve also looked through the doco to make sure that all prerequisites are being met. What am I doing wrong? Has anyone else gotten the shrink ISM operation to work correctly?

I am curious if anyone else has been able to get the Shrink operation working correctly. And if so, how they set it up.

I believe I’ve discovered a bug in the ISM Shrink action code that is causing this problem. I created a bug report here: . I’m not a Kotlin dev so I’m having problems getting the integration tests to complete. Would welcome anyone’s help if they can so I can make a PR/MR to get this fixed.

Bug and fix confirmed. PR created here: .

anyone managed to get it working? I just updated to Opensearch 2.2.0 and I’m still getting the same error.
I deployed it on a Kubernetes cluster with 3 data nodes and 30GB PVC for the data mountpoints

$ curl localhost:9200/_cat/allocation?v
shards disk.indices disk.used disk.avail disk.percent host         ip           node
    79      469.9mb   733.5mb     28.6gb     29.4gb            2  opensearch-data-0
    83      672.3mb  1006.6mb     28.4gb     29.4gb            3 opensearch-data-2
    33      603.2mb   778.3mb     28.6gb     29.4gb            2  opensearch-data-1
     9                                                                                     UNASSIGNED

verified on 2.2.0 - shrink does work.

can you show me how does your policy look, please? maybe I’m doing something wrong