StackExchange.Redis Cannot access a disposed object. Object name: 'RD2818788D0D2F'
Getting the following error randomly - generally have to kill one of the web instances to "fix" it Any ideas, How to handle object disposed exception when we are using ForceReconnectAsync pattern?
We have been facing this issue for the last two years and there is no specific pattern to reproduce this issue.RD2818788D0D2F is one of the Azure web app instance.We don't have auto scaling enabled in web app service. So we could not identify the root cause of this issue. We are using the ForceReconnectAsync pattern as suggested in below link.
https://github.com/Azure-Samples/azure-cache-redis-samples/blob/main/quickstart/aspnet-core/ContosoTeamStats/RedisConnection.cs
Exception : System.ObjectDisposedException: Cannot access a disposed object. Object name: 'RD2818788D0D2F'.

StackTrace:
{"id":"65648510","outerId":"0","type":"System.ObjectDisposedException","message":"Cannot access a disposed object.\r\nObject name: 'RD2818788D0D2F'.","severityLevel":"Error","parsedStack":[{"level":0,"method":"StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl","assembly":"StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46","line":2851,"fileName":"//src/StackExchange.Redis/ConnectionMultiplexer.cs"},{"level":1,"method":"StackExchange.Redis.RedisBase.ExecuteSync","assembly":"StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46","line":54,"fileName":"//src/StackExchange.Redis/RedisBase.cs"},{"level":2,"method":"StackExchange.Redis.RedisDatabase.ScriptEvaluate","assembly":"StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46","line":1217,"fileName":"/_/src/StackExchange.Redis/RedisDatabase.cs"},{"level":3,"method":"CacheManager.Redis.RedisCacheHandle1.Eval","assembly":"CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb","line":0},{"level":4,"method":"CacheManager.Redis.RedisCacheHandle1+<>c__DisplayClass48_0.<GetCacheItemAndVersion>b__0","assembly":"CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb","line":0},{"level":5,"method":"CacheManager.Redis.RetryHelper.Retry","assembly":"CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb","line":0},{"level":6,"method":"CacheManager.Redis.RedisCacheHandle1.Retry","assembly":"CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb","line":0},{"level":7,"method":"CacheManager.Redis.RedisCacheHandle1.GetCacheItemAndVersion","assembly":"CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb","line":0},{"level":8,"method":"CacheManager.Redis.RedisCacheHandle1.GetCacheItemInternal","assembly":"CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb","line":0},{"level":9,"method":"CacheManager.Redis.RedisCacheHandle1.GetCacheItemInternal","assembly":"CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb","line":0},
@NickCraver @mgravell Similar issues raised by other people: https://github.com/dotnet/aspnetcore/issues/36092 @adityamandaleeka
Similar issue with version 2.2.4
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'consumer-75787c44d5-sr9rk'.
at StackExchange.Redis.ConnectionMultiplexer.ExecuteAsyncImpl[T](Message message, ResultProcessor`1 processor, Object state, ServerEndPoint server) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2698
at StackExchange.Redis.RedisBase.ExecuteAsync[T](Message message, ResultProcessor`1 processor, ServerEndPoint server) in /_/src/StackExchange.Redis/RedisBase.cs:line 47
at StackExchange.Redis.RedisDatabase.StreamRangeAsync(RedisKey key, Nullable`1 minId, Nullable`1 maxId, Nullable`1 count, Order messageOrder, CommandFlags flags) in /_/src/StackExchange.Redis/RedisDatabase.cs:line 2184
Hey all, As noted in the linked issue, this isn't a library issue. The caller/handler/reference holder in all these cases is telling our ConnectionMultiplexer to dispose, then complaining when it's...disposed. If you tell an object to dispose, you cannot safely continue using it. This needs to be fixed upstream in the callers.
Since this is a problem upstream - closing this one out.