When running pipelines with Top combine function on dataflow runner v2, the backend complains about missing coder id for example missing BoundedHeapCoder1.
After some troubleshooting this problem seems more generic:
The step context translation phase would not recognize already registered Coder with incorrect hashCode() function, and will try to give it a new uniqified name to the pipeline_proto_coder_id,
In this case, since the comparator field in BoundedHeapCoder often does not implement hashCode() and equals() the BoundedHeapCoder will also have a different hashCode() each time a new instance is created. The duplicated coder does not exist in already translated pipeline proto and will lead to the aforementioned missing coder id issue.