question

Ákos Meiszter avatar image
Ákos Meiszter asked

Unreal Engine 5.3 "Unhealthy" for Server after updating from 5.2.1

Hey everyone,

been using playfab for a while, but after updating to unreal 5.3 from 5.2.1 I can't deploy my server build, which was working fine before. Now it always returns "Pending Heartbeat" Do I have to do some extra step perhaps in editor? Or i might need to add new dlls..?

I updated the Playfab Marketplace plugin also to 5.3. Thanks a lot! UPDATE Just tried the Local Multiplayer Agent (in process mode) and it went through all the required steps Standingby->Active-> Terminating. Not sure then why Heartbeat is pending when I try to deploy

unrealCustom Game Servers
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Infer Wang avatar image
Infer Wang answered

Pending heartbeat means something wrong with GSDK integration, normally testing with LocalMultiplayerAgent may point it out, did you receive any other error message? You can follow this document: Determining required DLLs that need to be included in the asset package to check the required system DLLs and add those DLLs to your project. Also you may refer to Connect directly to debug game servers - PlayFab | Microsoft Learn to connect directly to debug your game servers.

3 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Ákos Meiszter avatar image Ákos Meiszter commented ·

Hey, thanks for getting back to me.

Thanks for getting back to me, I have done all that as you suggested.

Is there any reports about engine compatibility perhaps? Because as I said the only change I made is I updated from Unreal 5.2.1 to 5.3 and now my server goes to unhealthy state.

0 Likes 0 ·
Infer Wang avatar image Infer Wang Ákos Meiszter commented ·

You can try Local Multiplayer Agent in container mode to see if it has similar issue.

0 Likes 0 ·
Ákos Meiszter avatar image Ákos Meiszter Infer Wang commented ·

hey been a while, I reverted back to 5.2 as I could not figure this out back then.

However we are updating the engine now for sure, so I need to figure this out. :)

I created an empty project and implemented the Playfab GSDK Plugin there, managed to compile and package a server build also.

Tested with LocalMultiplayerAgent also and running without container mode worked great, server went from Standby -> Active -> Terminate

Noticed in the PlayfabAgent logs, when i was trying to deploy the server that Just before a HealthCheck it tried to create a user? I only noticed this log with unhealthy server builds. Any idea why is that?

Thanks! Attempting to create user RF1Z3OWM5 with expiration set to 1/17/2024 10:07:12 AM 2024-01-16 10:07:13.356 +00:00 [Information] User RF1Z3OWM5 not found, proceeding to create the user.Name Enabled Description---- ------- -----------RF1Z3OWM5 True 2024-01-16 10:07:28.941 +00:00 [Information] Sending heartbeat with correlationId: CurrentGameState":"PendingHeartbeat","

0 Likes 0 ·
Ákos Meiszter avatar image
Ákos Meiszter answered

Actually, I am having these linker issues.. I can compile with them, but now at a closer look it looks like they might be causing issue.

Any advice to solve this? Looks like libcurl.lib is causing the problem.

LINK : warning LNK4217: symbol 'curl_global_init' defined in 'libcurl.lib(easy.obj)' is imported by 'GSDK_CPP_Windows.lib(gsdk.obj)' in function '"public: __cdecl Microsoft::Azure::Gaming::GSDKInternal::GSDKInternal(void)" (??0GSDKInternal@Gaming@Azure@Microsoft@@QEAA@XZ)' 1>LINK : warning LNK4217: symbol 'curl_slist_append' defined in 'libcurl.lib(slist.obj)' is imported by 'GSDK_CPP_Windows.lib(gsdk.obj)' in function '"public: __cdecl Microsoft::Azure::Gaming::GSDKInternal::GSDKInternal(void)" (??0GSDKInternal@Gaming@Azure@Microsoft@@QEAA@XZ)' 1>LINK : warning LNK4217: symbol 'curl_easy_init' defined in 'libcurl.lib(easy.obj)' is imported by 'GSDK_CPP_Windows.lib(gsdk.obj)' in function '"public: __cdecl Microsoft::Azure::Gaming::GSDKInternal::GSDKInternal(void)" (??0GSDKInternal@Gaming@Azure@Microsoft@@QEAA@XZ)' 1>LINK : warning LNK4217: symbol 'curl_easy_setopt' defined in 'libcurl.lib(setopt.obj)' is imported by 'GSDK_CPP_Windows.lib(gsdk.obj)' in function '"private: void __cdecl Microsoft::Azure::Gaming::GSDKInternal::heartbeatThreadFunc(void)" (?heartbeatThreadFunc@GSDKInternal@Gaming@Azure@Microsoft@@AEAAXXZ)' 1>LINK : warning LNK4217: symbol 'curl_easy_perform' defined in 'libcurl.lib(easy.obj)' is imported by 'GSDK_CPP_Windows.lib(gsdk.obj)' in function '"private: void __cdecl Microsoft::Azure::Gaming::GSDKInternal::heartbeatThreadFunc(void)" (?heartbeatThreadFunc@GSDKInternal@Gaming@Azure@Microsoft@@AEAAXXZ)' 1>LINK : warning LNK4217: symbol 'curl_easy_getinfo' defined in 'libcurl.lib(easy.obj)' is imported by 'GSDK_CPP_Windows.lib(gsdk.obj)' in function '"private: void __cdecl Microsoft::Azure::Gaming::GSDKInternal::receiveHeartbeatResponse(void)" (?receiveHeartbeatResponse@GSDKInternal@Gaming@Azure@Microsoft@@AEAAXXZ)' 1>LINK : warning LNK4217: symbol 'curl_easy_reset' defined in 'libcurl.lib(easy.obj)' is imported by 'GSDK_CPP_Windows.lib(gsdk.obj)' in function '"private: void __cdecl Microsoft::Azure::Gaming::GSDKInternal::heartbeatThreadFunc(void)" (?heartbeatThreadFunc@GSDKInternal@Gaming@Azure@Microsoft@@AEAAXXZ)

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.