cancel
Showing results for 
Search instead for 
Did you mean: 

Public rooms created in browse matchmaking pool disappearing after 2 minutes

opus_studio
Explorer
Hi

We use the latest platform SDK to do matchmaking in a single pool in browse mode to create and join public rooms, but these rooms somehow disappear when being browsed for after about two minutes.

Using the platform SDK NativeSample which prints out all communication to the Oculus servers it even displays errors arriving at the host which created the room. But these errors never arrive in the game code which polls with ovr_PopMessage. As far as I can see these automated requests and response errors are only printed to stdout/stderr by the SDK library and are not forwarded to the game.


Here is the log of user A creating a public room with ovr_Matchmaking_CreateAndEnqueueRoom and then waiting in it:
[17:15:23] Creating room in pool main
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_create_join_and_enqueue_room?app_version=0&max_users=8&po...
[RequestStopwatch] HttpRequest (matchmaking_create_join_and_enqueue_room) took 1511 milliseconds
[HttpRequest] Request `matchmaking_create_join_and_enqueue_room' succeeded: {"candidates":[],"trace_id":"***","max_expected_wait_s":128,"average_wait_s":75,"matches_in_last_hour":0,"recent_match_percentage":0,"pool_key":"main","viewer_room":{"application":{"id":"***"},"max_users":8,"owner":{"alias":"bernhardschellingopu","id":"***","presence":"Home","presence_status":"ONLINE"},"users":{"data":[{"alias":"bernhardschellingopu","id":"***","presence":"Home","presence_status":"ONLINE"}]},"description":"","type":"MATCHMAKING","joinability":"ARE_IN","version":0,"is_membership_locked":false,"id":"547657595426106"}}
[RoomManager] Current room: 547657595426106
[17:15:24] Successfully created and enqueued room! Room ID: 547657595426106, App ID: ***, Description:
[17:15:24] maxUsers: 8
[17:15:24] users in room:
[17:15:24] Room owner: *** bernhardschellingopu
[17:15:24] Join Policy: ovrRoom_JoinPolicyNone Room Type: ovrRoom_TypeMatchmaking user *** bernhardschellingopu Home (null)

[17:15:52]
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_room?app_version=0&max_users=8&pool=main&room_id=...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_room) took 1157 milliseconds
[HttpRequest] Request `matchmaking_enqueue_room' succeeded: {"candidates":[],"trace_id":"***","max_expected_wait_s":128,"average_wait_s":75,"matches_in_last_hour":0,"recent_match_percentage":0,"pool_key":"main"}

[17:16:24]
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_room?app_version=0&max_users=8&pool=main&room_id=...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_room) took 1168 milliseconds
[HttpRequest] Request `matchmaking_enqueue_room' succeeded: {"candidates":[],"trace_id":"***","max_expected_wait_s":128,"average_wait_s":75,"matches_in_last_hour":0,"recent_match_percentage":0,"pool_key":"main"}

[17:16:55]
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_room?app_version=0&max_users=8&pool=main&room_id=...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_room) took 334 milliseconds
[HttpRequest] Request `matchmaking_enqueue_room' failed: {"error":{"message":"Permissions error","type":"OCApiException","code":200,"fbtrace_id":"Hstxk1W\/BAr"}}

[17:17:26]
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_room?app_version=0&max_users=8&pool=main&room_id=...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_room) took 605 milliseconds
[HttpRequest] Request `matchmaking_enqueue_room' failed: {"error":{"message":"Permissions error","type":"OCApiException","code":200,"fbtrace_id":"C02inDeeaj6"}}

[17:17:57]
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_room?app_version=0&max_users=8&pool=main&room_id=...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_room) took 544 milliseconds
[HttpRequest] Request `matchmaking_enqueue_room' failed: {"error":{"message":"Permissions error","type":"OCApiException","code":200,"fbtrace_id":"BwfnPj1\/wqi"}}


Here is the log of user B which just queries rooms with ovr_Matchmaking_Browse over and over:
[17:15:24] Trying to browse matchmaking rooms for pool main
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_party?app_version=0&fields=application%2Cmax_user...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_party) took 750 milliseconds
[HttpRequest] Request `matchmaking_enqueue_party' succeeded: {"candidates":[],"trace_id":"***","max_expected_wait_s":88,"average_wait_s":45,"matches_in_last_hour":0,"recent_match_percentage":0,"pool_key":"main"}
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_room?app_version=0&fields=application%2Cmax_users%2Cowner...
[RequestStopwatch] HttpRequest (matchmaking_room) took 927 milliseconds
[17:15:26] Received 1 Rooms
[17:15:26]     [0] Room ID: 547657595426106, App ID: ***, Description:  - Users: 1/8 - Owner: *** *** - Join Policy: None - Type: Matchmaking - Joinability: CanJoin

[17:16:36] Trying to browse matchmaking rooms for pool main
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_party?app_version=0&fields=application%2Cmax_user...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_party) took 726 milliseconds
[HttpRequest] Request `matchmaking_enqueue_party' succeeded: {"candidates":[],"trace_id":"***","max_expected_wait_s":88,"average_wait_s":45,"matches_in_last_hour":0,"recent_match_percentage":0,"pool_key":"main"}
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_room?app_version=0&fields=application%2Cmax_users%2Cowner...
[RequestStopwatch] HttpRequest (matchmaking_room) took 1195 milliseconds
[17:16:38] Received 1 Rooms
[17:16:38]     [0] Room ID: 547657595426106, App ID: ***, Description:  - Users: 1/8 - Owner: *** *** - Join Policy: None - Type: Matchmaking - Joinability: CanJoin

[17:16:45] Trying to browse matchmaking rooms for pool main
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_party?app_version=0&fields=application%2Cmax_user...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_party) took 1122 milliseconds
[HttpRequest] Request `matchmaking_enqueue_party' succeeded: {"candidates":[],"trace_id":"***","max_expected_wait_s":88,"average_wait_s":45,"matches_in_last_hour":0,"recent_match_percentage":0,"pool_key":"main"}
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_room?app_version=0&fields=application%2Cmax_users%2Cowner...
[RequestStopwatch] HttpRequest (matchmaking_room) took 1178 milliseconds
[17:16:47] Received 1 Rooms
[17:16:47]     [0] Room ID: 547657595426106, App ID: ***, Description:  - Users: 0/8 - Owner: 0  - Join Policy: None - Type: Matchmaking - Joinability: CanJoin

[17:17:00] Trying to browse matchmaking rooms for pool main
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_enqueue_party?app_version=0&fields=application%2Cmax_user...
[RequestStopwatch] HttpRequest (matchmaking_enqueue_party) took 1061 milliseconds
[HttpRequest] Request `matchmaking_enqueue_party' succeeded: {"candidates":[],"trace_id":"***","max_expected_wait_s":88,"average_wait_s":45,"matches_in_last_hour":0,"recent_match_percentage":0,"pool_key":"main"}
[CurlHttpClient] Full URI: https://graph.oculus.com//v1.7/matchmaking_room?app_version=0&fields=application%2Cmax_users%2Cowner...
[RequestStopwatch] HttpRequest (matchmaking_room) took 1065 milliseconds
[17:17:02] Received 0 Rooms


For the host of the room the SDK library seems to automatically call matchmaking_enqueue_room every 30 seconds. After 1.5 minutes this automated request returns a mysterious "Permissions error" which keeps being returned forever from then on.
On the client side browsing for rooms the room appears normally at first. A bit later the room still appears but suddenly without an owner and 0 members. Shortly afterwards the room is not returned anymore.

I will now try to add some code to our game which refreshes the room every minute (maybe ovr_Room_UpdateDataStore helps?) to keep the room alive, maybe I can come up with a workaround.

Any insight or ideas why this happens? Thanks!
1 REPLY 1

dhoskins
Honored Guest
Sorry, I've just been alerted to this post.
The permissions error you were getting means the user is no longer the owner.
Two things.  (1) why does the user no longer own the room?  (2) why does the SDK continue to re-enqueue after that?  
(1) Unfortunately, our logs from 9/1 are gone by this point so I can't tell without a more-recent repro.  It's usually either because the user left the room, or the user is logged on somewhere else and got put into a different room.
(2) SDK v1.9 fixes the issue that causes it to continue to heartbeat, but the heartbeat was harmless other than confusing log-spew, and this fix wouldn't change your outcome.

You shouldn't need to do any workaround.
I'd upgrade to 1.8 (or 1.9 will be out in a couple weeks), check your code, think whether you were logged in in multiple places, and see if it's still a problem.