title: Why does StackExchange.Redis frequently throw an "Unexpected response to EXEC: MultiBulk: 0" exception during transaction.ExecuteAsync()?
body: <p>I tried debugging through the code and it seems to repro mainly when multiple clients are trying to modify the same key in a transaction. Retrying the transaction usually gets rid of the error, but is there any reason why the exception is thrown in the first place?</p>
  
  <p>The code I'm trying to execute is pretty straightforward:</p>
  
  <pre><code>var existingValue = db.HashGetAsync(hashKey, field);
  var t = db.CreateTransaction();
  t.AddCondition(Condition.HashEqual(hashKey, field, existingValue));
  t.HashSetAsync(hashKey, field, newValue, flags: CommandFlags.FireAndForget);
  bool succeeded = await t.ExecuteAsync(); // StackExchange.Redis.RedisConnectionException thrown intermittently
  </code></pre>