### Elasticsearch Version

Doesn't matter

### Installed Plugins

_No response_

### Java Version

all

### OS Version

doesn't matter

### Problem Description

When you send a `scroll` request to the low level rest client it uses it's standard retry mechanism which catches all errors and just retries against another ES instance. The trouble with that is that you *can't* retry a scroll - it generally consumes state on the server and moves to the next page.

### Steps to Reproduce

Scroll with low level rest client.

### Logs (if relevant)

_No response_
client/rest/src/main/java/org/elasticsearch/client/RestClient.java
nodesByHost.put(node.getHost(), node);
            authCache.put(node.getHost(), new BasicScheme());
        }
        this.nodeTuple = new NodeTuple<>(Collections.unmodifiableList(new ArrayList<>(nodesByHost.values())), authCache);
        this.blacklist.clear();
    }
    /**
     * Get the list of nodes that the client knows about. The list is
     * unmodifiable.
     */
    public List<Node> getNodes() {
        return nodeTuple.nodes;
    }
    /**
     * check client running status
     * @return client running status
     */
    public boolean isRunning() {
        return client.isRunning();
    }
    /**
     * Sends a request to the Elasticsearch cluster that the client points to.
     * Blocks until the request is completed and returns its response or fails
     * by throwing an exception. Selects a host out of the provided ones in a
     * round-robin fashion. Failing hosts are marked dead and retried after a
     * certain amount of time (minimum 1 minute, maximum 30 minutes), depending
     * on how many times they previously failed (the more failures, the later
     * they will be retried). In case of failures all of the alive nodes (or
     * dead nodes that deserve a retry) are retried until one responds or none
     * of them does, in which case an {@link IOException} will be thrown.