Trying IPv6 and failing is normal. Modern software that supports both is supposed to try both, but sometimes people mess it up…
In general, if you write code that connects to another computer over the network, you want to be connecting to a string, not an IP address. If you write something like connect(“lemmy.world”, 443), it should connect over either IPv6 or IPv4. However, if you write something like connect(getHostByName(“lemmy.world”), 443), that usually will return a single IP address and if that address doesn’t work then the connection fails.