Error: expected 1 AAAA records for xyz.fly.dev., got 0

It seems your app still doesn’t have a shared IPv4. Here’s an example from an app of mine

[I] ➜ fly ips list -a rinha-nginx
VERSION	IP                    	TYPE              	REGION	CREATED AT
v6     	2a09:8280:1::2b:c07d:0	public (dedicated)	global	Feb 23 2024 15:59
v4     	66.241.124.106        	public (shared)   	      	Jan 1 0001 00:00

You might want to try fly ips allocate-v4 --shared and use the A record on your certificate because unfortunately the internet is not ready to work just on IPv6.