I am not totally sure if this a [QUESTION] or a [BUG] , and if the latter, if the bug is on Redis directly or on AWS.


Environment

  • Redis version: 7.1.
  • Connecting to an AWS Elasticache serverless Redis cluster.
  • Using a read-only user: on ~* -@all +@connection +@read +@keyspace +@slow

When running a SCAN against the database using the read-only user, we receive the following error:

ERR internal error

Note: other read-only commands like ZRANGE work as expected. Also, using a user whose ACL is on ~* +@all, then the SCAN also works as expected.

My gut feeling is that considering that the same command works when using a user with all permissions, it feels only natural to assume that the issue is related to permissions. Yet, when checking the official Redis docs for SCAN it only mentions the following ACL categories: @keyspace, @read, @slow, all of which are assigned to the read-only user. Thus, I wonder if the problem is that the documentation is outdated and we need an extra or different set of permissions? Or if AWS is doing something weird on their side?

Comment From: sundb

@BalmungSan it works in my local by using Redis, and i don't see any internal error reply in the Redis source code.

Comment From: BalmungSan

@sundb so I guess AWS is the faulty one here, but not sure where to report that.

Comment From: sundb

@BalmungSan you can make an issue through the support page in the aws.

Comment From: BalmungSan

Hi, sorry for not replying before.

I did contact AWS using our internal communication channels, after two weeks they confirmed that this was a known issue with ElastiCache and that they are working on a fix. However, they didn't provide an estimated timeline.

Anyways, I am closing this but I wanted to leave the note in case anyone has the same problem and ends up finding this issue.

Comment From: ra-cen

Hiya @BalmungSan - did AWS get back to you with a work around? it doesn't look like it's fixed still :(

Comment From: BalmungSan

Hi @ra-cen sadly no, we keep using a user with write access despite the application only reading data.