I had this exact problem yesterday. Today it is fixed and I had a simple, clear fix.
First up, don’t be afraid to log tickets with Zwift, I have now twice and they are really responsive. I logged a ticket last night before bed, got up this morning and they had asked for logs. After sending them the logs I went through them. It seems the application uses UDP on port 3022. Whilst i had turned off windows firewall through troubleshooting, I know that UDP 3022 is not allowed through my edge (internet facing) firewall / router. I allowed UDP 3022 in through the firewall and retested Zwift. I can now join races as expected. I’ve now tested several times.
Perhaps give this a shot if you’re having issues, it worked for me.
BTW, i’m using windows PC / laptop, no wireless only ethernet cable. Was able to going events, but never get prompted to join events. This is regardless whether i used the zwift mobile app inconjunction with the PC.
I think the key is to ensure that 3022 UDP is functional whether that be on you router or even a local security program / firewall.