Since there is an @EqualsAndHashCode(callSuper = true) annotation on ErlangPid, type field is considered for hashcode & equals, which means otherwise identical but different in PID/NEW_PID ErlangPids would be considered different, which means we don't get replies.
I bumped into this by simply launching elixir (iex --sname foo) and then doing ping from JVM.
After building locally with hashcode() defined as
@Override
public int hashCode() {
return Objects.hash(descriptor, id, serial, creation);
}
message exchange works. I can submit a PR if this is the right solution or I would be happy to hear your thoughts on this in general.