The elements in the block filter are de-duplicated on insertion into a set, however the hashes are not. This means a zero is encoded in the filter for each collision. The client never cares about these so they should not be needed.
Is this actually a bug or am I missing something?
For reference, the same issue is present in the Rust library.