An incomplete shard snapshot will prevent a shard from moving away from a node (see `SnapshotInProgressAllocationDecider`). That means that when a shard snapshot completes it may become possible to perform some shard movements that previously were not possible, so we should trigger a reroute to start those movements. AFAICT we do not trigger such a reroute today.
server/src/main/java/org/elasticsearch/snapshots/SnapshotsService.java
return currentState;
                    }
                    @Override
                    public void onFailure(Exception e) {
                        if (executedTask) {
                            updateTask.onFailure(e);
                        } else {
                            onFailure.accept(e);
                        }
                    }
                    @Override
                    public void clusterStateProcessed(ClusterState oldState, ClusterState newState) {
                        if (executedTask) {
                            updateTask.clusterStateProcessed(oldState, newState);
                        } else {
                            executeConsistentStateUpdate(repository, createUpdateTask, source, onFailure);
                        }
                    }
                });
            }, onFailure)
        );
    }
    /** Deletes snapshot from repository
     *
     * @param deleteEntry       delete entry in cluster state
     * @param repositoryData    the {@link RepositoryData} of the repository to delete from
     * @param minNodeVersion    minimum node version in the cluster
     */
    private void deleteSnapshotsFromRepository(
        SnapshotDeletionsInProgress.Entry deleteEntry,