Today if we detect concurrent modification of a snapshot repository then we mark it with `CORRUPTED_REPO_GEN` which blocks further writes to try and prevent additional damage to its contents. You can remove the marker by calling the register-repository API again, but this API will discard no-op re-registrations without taking any action. You can work around this by unregistering the repository first (which may be impossible if it's still in use for searchable snapshots) or by re-registering it with some trivial setting change (which seems hacky).

We should not consider it a no-op re-registration if the repository is currently marked with `CORRUPTED_REPO_GEN`, because doing this re-registration will re-read the repo contents and clear the corruption marker and therefore is not a no-op.
server/src/main/java/org/elasticsearch/repositories/RepositoriesService.java
final StepListener<List<DiscoveryNode>> verifyStep = new StepListener<>();
            publicationStep.whenComplete(changed -> acknowledgementStep.whenComplete(clusterStateUpdateResponse -> {
                if (clusterStateUpdateResponse.isAcknowledged() && changed) {
                    
                    verifyRepository(request.name(), verifyStep);
                } else {
                    verifyStep.onResponse(null);
                }
            }, listener::onFailure), listener::onFailure);
            
            final StepListener<RepositoryData> getRepositoryDataStep = new StepListener<>();
            verifyStep.whenComplete(
                ignored -> threadPool.generic()
                    .execute(ActionRunnable.wrap(getRepositoryDataStep, l -> repository(request.name()).getRepositoryData(l))),
                listener::onFailure
            );
            
            final StepListener<Void> updateRepoUuidStep = new StepListener<>();
            getRepositoryDataStep.whenComplete(
                repositoryData -> updateRepositoryUuidInMetadata(clusterService, request.name(), repositoryData, updateRepoUuidStep),
                listener::onFailure
            );
            
            updateRepoUuidStep.whenComplete(ignored -> acknowledgementStep.addListener(listener), listener::onFailure);
        } else {
            acknowledgementStep.addListener(listener);
        }