-
Notifications
You must be signed in to change notification settings - Fork 8
Description
When the racetime.gg integration attempts to a join a player into a racetime.gg room and connect their their accounts between the two rooms, the response from the racetime websocket is ignored, which means that if racetime refuses to let the player join the room for any reason, we do not give the user any feedback on our end. There are several normal reasons that this may happen - a race streaming requirement if the user hasn't linked their twitch and racetime accounts or the global one race limit. As a result of this, a 200 response code is sent if the join action was triggered via the HTTP action endpoint, which while technically correct (the action request was properly dispatched and is being processed asynchronously and the consumer should be watching the room websocket for further updates)is definitely misleading.
Instead, we should see if we can synchronously listen for the response to the join message - either next race.data message or the next error message. Waiting for a nondescript message (especially race.data) is always going to be tricky, as anything can trigger that to be sent out, but we know what the change in state we're watching for is. It's a tricky situation