According to the documentation, in order for a player to join a challenge, it must be in the issued state.
However, the actual behavior I am seeing is...
1. Player A creates FRIENDS challenge
2. Player A withdraws challenge
3. Player B who is friends with a joins challenge - why isn't this rejected??
4. Challenge start message - oops?
When you create a challenge with the "accessType" set to "FRIENDS" it means any friend can find and join it. If PlayerA creates a "FRIENDS" challenge, PlayerB can then find it with a FindChallengeRequest.
If PlayerA then sends a WithdrawChallengeRequest with the challengeId PlayerB won't be able to find it with a FindChallengeRequest. If they have the challengeId they can join it with a JoinChallengeRequest. However in a real game scenario PlayerB would never be able to retrieve this challengeId for a "WITHDRAWN" challenge so would never be able to join any challenge in this state. If you have any further questions just let me know.