-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Closed
Description
Getting "Index was outside the bounds of the array" exception when publishing to Redis stream using StreamAddAsync with StreamTrimMode.Acknowledged. The same code works fine with StreamTrimMode.KeepReference.
Environment:
- StackExchange.Redis version: 2.8.58
- .NET version: .NET 5.0
- Redis server version: 8.2.0 (running on Docker)
Code that fails:
await database.StreamAddAsync(
streamName,
maxLength: maxLength,
useApproximateMaxLength: true,
trimMode: StreamTrimMode.Acknowledged, // Throws exception
streamPairs: nameValueEntries);Code that works:
await database.StreamAddAsync(
streamName,
maxLength: maxLength,
useApproximateMaxLength: true,
trimMode: StreamTrimMode.KeepReference, // Works fine
streamPairs: nameValueEntries);Stack Trace:
Index was outside the bounds of the array.
at StackExchange.Redis.RedisDatabase.GetStreamAddMessage(RedisKey key, RedisValue entryId, Nullable`1 maxLength, Boolean useApproximateMaxLength, NameValueEntry[] streamPairs, Nullable`1 limit, StreamTrimMode mode, CommandFlags flags)
at StackExchange.Redis.RedisDatabase.StreamAddAsync(RedisKey key, NameValueEntry[] streamPairs, ...)
Expected behavior: StreamTrimMode.Acknowledged should work without throwing array bounds exceptions.
Metadata
Metadata
Assignees
Labels
No labels