CanShowRewardHub on the Linked status before calling, gate your entry point on it, and refresh on OnStatusChanged - see What can actually be shown. A linked player does not always have the reward hub, and availability can change mid-session.
Calling in any state is still safe. The screen opens only for a linked player for whom the reward hub is currently available; otherwise the call does nothing and the reason is logged through OnLog. Before the SDK is ready (the first OnStatusChanged), it no-ops with a warning.
Only one in-app screen can be open at a time. A call made while another screen is already open is ignored with a log.
Screen lifecycle
The reward hub reports its lifecycle through the unified screen events - see Pausing your game. The dismissal reports how it was closed:Failed carries an Error. The SDK re-syncs the player’s state before the dismissal fires, so state read in the handler is already up to date; an OnStatusChanged may arrive around the same moment.