@driveirk
I’ve tried to reproduce your use case in our ROR Sandbox: [RORDEV_2109] reproduction by coutoPL · Pull Request #104 · beshu-tech/ror-sandbox · GitHub
I cannot confirm the issue.
The ROR ACL looks like this: ror-sandbox/ror-demo-cluster/conf/es/readonlyrest.yml at c578b9b789bbd38ccc6a70dd53feaa7882414757 · beshu-tech/ror-sandbox · GitHub
I’ve tested it like this:
> curl -ks -u user:test "https://127.0.0.1:19200/*:*asdasd/_search" -H "test:1"
{"took":15,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"_clusters":{"total":1,"successful":1,"skipped":0,"running":0,"partial":0,"failed":0,"details":{"remote1":{"status":"successful","indices":"asdasd","took":10,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}}}},"hits":{"total":{"value":1,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"remote1:asdasd","_id":"q115Np8BCpKND3ygIhSw","_score":1.0,"_source":{"hello":"world"}}]}}⏎
> curl -ks -u user:test "https://127.0.0.1:19200/*:*asdasd/_search" -H "test:2"
{"took":5,"timed_out":false,"_shards":{"total":2,"successful":2,"skipped":0,"failed":0},"_clusters":{"total":1,"successful":1,"skipped":0,"running":0,"partial":0,"failed":0,"details":{"remote1":{"status":"successful","indices":"asdasd,xasdasd","took":2,"timed_out":false,"_shards":{"total":2,"successful":2,"skipped":0,"failed":0}}}},"hits":{"total":{"value":2,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"remote1:asdasd","_id":"q115Np8BCpKND3ygIhSw","_score":1.0,"_source":{"hello":"world"}},{"_index":"remote1:xasdasd","_id":"rF15Np8BCpKND3ygIxTo","_score":1.0,"_source":{"hello":"world"}}]}}⏎
> curl -ks -u user:test "https://127.0.0.1:19200/*:*asdasd/_search" -H "test:3"
{"took":4,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"_clusters":{"total":1,"successful":1,"skipped":0,"running":0,"partial":0,"failed":0,"details":{"remote1":{"status":"successful","indices":"asdasd","took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0}}}},"hits":{"total":{"value":1,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"remote1:asdasd","_id":"q115Np8BCpKND3ygIhSw","_score":1.0,"_source":{"hello":"world"}}]}}⏎
> curl -ks -u user:test "https://127.0.0.1:19200/*:*asdasd/_search" -H "test:4"
{"took":5,"timed_out":false,"_shards":{"total":2,"successful":2,"skipped":0,"failed":0},"_clusters":{"total":1,"successful":1,"skipped":0,"running":0,"partial":0,"failed":0,"details":{"remote1":{"status":"successful","indices":"asdasd,xasdasd","took":3,"timed_out":false,"_shards":{"total":2,"successful":2,"skipped":0,"failed":0}}}},"hits":{"total":{"value":2,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"remote1:asdasd","_id":"q115Np8BCpKND3ygIhSw","_score":1.0,"_source":{"hello":"world"}},{"_index":"remote1:xasdasd","_id":"rF15Np8BCpKND3ygIxTo","_score":1.0,"_source":{"hello":"world"}}]}}⏎
Logs look like this:
es-ror-1 | {"@timestamp":"2026-07-06T08:09:22.219Z","log.level": "INFO","message":"[184e3a82-ce1e-4b9b-8f0d-41f1bdd7f880-74040044#4596] \u001B[36mALLOWED by { name: 'Test1', policy: ALLOW, rules: [auth_key, headers_and, indices] } req={ ID:184e3a82-ce1e-4b9b-8f0d-41f1bdd7f880-74040044#4596, TYP:SearchRequest, CGR:<N/A>, USR:user, BRS:true, ACT:indices:data/read/search, OA:192.168.65.1/32, XFF:null, DA:172.19.0.2/32, IDX:*:*asdasd, MET:GET, PTH:/*:*asdasd/_search, CNT:<N/A>, HDR:test=1, User-Agent=curl/8.7.1, Authorization=<OMITTED>, Accept=*/*, Host=127.0.0.1:19200, content-length=0, HIS:[KIBANA: NOT_MATCHED (AUTH_FAIL (Username mismatch)) -> RULES:[auth_key->false]], [Test1: MATCHED -> RULES:[auth_key->true, headers_and->true, indices->true] RESOLVED:[user=user;indices=remote1:asdasd]], }\u001B[0m", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"scala-execution-context-global-111","log.logger":"tech.beshu.ror.accesscontrol.logging.AccessControlListLoggingDecorator","elasticsearch.cluster.uuid":"Srimbv2MSsSZzyVbq4cjsA","elasticsearch.node.id":"LMrbntr-R9anGzvmaxpuJQ","elasticsearch.node.name":"es-ror-single","elasticsearch.cluster.name":"${sys:es.logs.cluster_name}"}
es-ror-1 | {"@timestamp":"2026-07-06T08:09:23.763Z","log.level": "INFO","message":"[0f0fbb11-7383-4a51-a2b1-0e5be23e834c-2001414584#4620] \u001B[36mALLOWED by { name: 'Test2', policy: ALLOW, rules: [auth_key, headers_and, indices] } req={ ID:0f0fbb11-7383-4a51-a2b1-0e5be23e834c-2001414584#4620, TYP:SearchRequest, CGR:<N/A>, USR:user, BRS:true, ACT:indices:data/read/search, OA:192.168.65.1/32, XFF:null, DA:172.19.0.2/32, IDX:*:*asdasd, MET:GET, PTH:/*:*asdasd/_search, CNT:<N/A>, HDR:test=2, User-Agent=curl/8.7.1, Authorization=<OMITTED>, Accept=*/*, Host=127.0.0.1:19200, content-length=0, HIS:[KIBANA: NOT_MATCHED (AUTH_FAIL (Username mismatch)) -> RULES:[auth_key->false]], [Test1: NOT_MATCHED (AUTHZ_FAIL) -> RULES:[auth_key->true, headers_and->false]], [Test2: MATCHED -> RULES:[auth_key->true, headers_and->true, indices->true] RESOLVED:[user=user;indices=remote1:xasdasd, remote1:asdasd]], }\u001B[0m", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"scala-execution-context-global-118","log.logger":"tech.beshu.ror.accesscontrol.logging.AccessControlListLoggingDecorator","elasticsearch.cluster.uuid":"Srimbv2MSsSZzyVbq4cjsA","elasticsearch.node.id":"LMrbntr-R9anGzvmaxpuJQ","elasticsearch.node.name":"es-ror-single","elasticsearch.cluster.name":"${sys:es.logs.cluster_name}"}
es-ror-1 | {"@timestamp":"2026-07-06T08:09:25.615Z","log.level": "INFO","message":"[5b910654-26ea-489c-854c-d00ffe78c2f7-773415090#4630] \u001B[36mALLOWED by { name: 'Test3', policy: ALLOW, rules: [auth_key, headers_and, indices] } req={ ID:5b910654-26ea-489c-854c-d00ffe78c2f7-773415090#4630, TYP:SearchRequest, CGR:<N/A>, USR:user, BRS:true, ACT:indices:data/read/search, OA:192.168.65.1/32, XFF:null, DA:172.19.0.2/32, IDX:*:*asdasd, MET:GET, PTH:/*:*asdasd/_search, CNT:<N/A>, HDR:test=3, User-Agent=curl/8.7.1, Authorization=<OMITTED>, Accept=*/*, Host=127.0.0.1:19200, content-length=0, HIS:[KIBANA: NOT_MATCHED (AUTH_FAIL (Username mismatch)) -> RULES:[auth_key->false]], [Test1: NOT_MATCHED (AUTHZ_FAIL) -> RULES:[auth_key->true, headers_and->false]], [Test2: NOT_MATCHED (AUTHZ_FAIL) -> RULES:[auth_key->true, headers_and->false]], [Test3: MATCHED -> RULES:[auth_key->true, headers_and->true, indices->true] RESOLVED:[user=user;indices=remote1:asdasd]], }\u001B[0m", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"scala-execution-context-global-112","log.logger":"tech.beshu.ror.accesscontrol.logging.AccessControlListLoggingDecorator","elasticsearch.cluster.uuid":"Srimbv2MSsSZzyVbq4cjsA","elasticsearch.node.id":"LMrbntr-R9anGzvmaxpuJQ","elasticsearch.node.name":"es-ror-single","elasticsearch.cluster.name":"${sys:es.logs.cluster_name}"}
es-ror-1 | {"@timestamp":"2026-07-06T08:09:27.052Z","log.level": "INFO","message":"[8f877a46-4df0-403f-bed9-23177502a411-1851082387#4644] \u001B[36mALLOWED by { name: 'Test4', policy: ALLOW, rules: [auth_key, headers_and, indices] } req={ ID:8f877a46-4df0-403f-bed9-23177502a411-1851082387#4644, TYP:SearchRequest, CGR:<N/A>, USR:user, BRS:true, ACT:indices:data/read/search, OA:192.168.65.1/32, XFF:null, DA:172.19.0.2/32, IDX:*:*asdasd, MET:GET, PTH:/*:*asdasd/_search, CNT:<N/A>, HDR:test=4, User-Agent=curl/8.7.1, Authorization=<OMITTED>, Accept=*/*, Host=127.0.0.1:19200, content-length=0, HIS:[KIBANA: NOT_MATCHED (AUTH_FAIL (Username mismatch)) -> RULES:[auth_key->false]], [Test1: NOT_MATCHED (AUTHZ_FAIL) -> RULES:[auth_key->true, headers_and->false]], [Test2: NOT_MATCHED (AUTHZ_FAIL) -> RULES:[auth_key->true, headers_and->false]], [Test3: NOT_MATCHED (AUTHZ_FAIL) -> RULES:[auth_key->true, headers_and->false]], [Test4: MATCHED -> RULES:[auth_key->true, headers_and->true, indices->true] RESOLVED:[user=user;indices=remote1:xasdasd, remote1:asdasd]], }\u001B[0m", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"scala-execution-context-global-111","log.logger":"tech.beshu.ror.accesscontrol.logging.AccessControlListLoggingDecorator","elasticsearch.cluster.uuid":"Srimbv2MSsSZzyVbq4cjsA","elasticsearch.node.id":"LMrbntr-R9anGzvmaxpuJQ","elasticsearch.node.name":"es-ror-single","elasticsearch.cluster.name":"${sys:es.logs.cluster_name}"}
When I don’t configure the remote cluster, I get empty results and “IDX_NOT_FOUND” in logs for these queries - which is correct behaviour.
Could you please double-check it on your side?
Are you able to show us the full log, not only part of it?