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
deleteEntry,
                            updatedRepoData,
                            listeners -> doneFuture.addListener(new ActionListener<>() {
                                @Override
                                public void onResponse(Void unused) {
                                    completeListenersIgnoringException(listeners, null);
                                }
                                @Override
                                public void onFailure(Exception e) {
                                    
                                    
                                    
                                    assert false : e;
                                }
                            })
                        );
                    }
                    @Override
                    public void onFailure(Exception e) {
                        logger.warn(() -> {
                            final StringBuilder sb = new StringBuilder("failed to complete snapshot deletion for [");
                            Strings.collectionToDelimitedStringWithLimit(
                                deleteEntry.getSnapshots().stream().map(SnapshotId::getName).toList(),
                                ",",
                                "",
                                "",
                                1024,
                                sb
                            );
                            sb.append("] from repository [").append(deleteEntry.repository()).append("]");