Hello,
There appears to be no code in place to prevent data contention. I have multiple UMG widgets that each call on the PlayFab API. If two are initialized at roughly the same time since a single Delegate is used, the response can be misdirected.
This is simple to reproduce with a single UMG with 2 widgets. One call on Get Title News while the other calls Get Current Games the processing time difference causes the data to overlap and will you end up trying to decode a News message from a Game Info object.
There is also a show stopping bug in the Response handler -
auto pfSettings = IPlayFab::Get();
should likely be
auto& pfSettings = IPlayFab::Get();
Otherwise the data is copied and never actually updated so every future session required call will fail as the object that setSessionTicket was called on gets deleted on scope exit.