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/cluster/metadata/RepositoryMetadata.java
this(name, RepositoryData.MISSING_UUID, type, settings, RepositoryData.UNKNOWN_REPO_GEN, RepositoryData.EMPTY_REPO_GEN);
    }
    public RepositoryMetadata(RepositoryMetadata metadata, long generation, long pendingGeneration) {
        this(metadata.name, metadata.uuid, metadata.type, metadata.settings, generation, pendingGeneration);
    }
    public RepositoryMetadata(String name, String uuid, String type, Settings settings, long generation, long pendingGeneration) {
        this.name = name;
        this.uuid = uuid;
        this.type = type;
        this.settings = settings;
        this.generation = generation;
        this.pendingGeneration = pendingGeneration;
        assert generation <= pendingGeneration
            : "Pending generation [" + pendingGeneration + "] must be greater or equal to generation [" + generation + "]";
    }
    /**
     * Returns repository name
     *
     * @return repository name
     */
    public String name() {
        return this.name;
    }
    /**
     * Returns repository type
     *
     * @return repository type
     */
    public String type() {
        return this.type;