Should I worry about WaitForProductUserId messages in logs?

I am trying to integrate EOS to be able store achievements in our game.
I can authenticate the user (using EOS_LCT_Developer credentials), but in log I can see messages like:

LogEOSAuth: NewUserToken: User ClientId: xyz...NiT AccountId: ef1...930 Access[Expires: 2023.05.11-16.02.13 Remaining: 7200.62] Refresh[Expires: 2023-05-11T22:02:13.623Z Remaining: 28800.62] State: Valid
LogEOSAuth: UserAuthGenerated: Received FUserAuthToken
LogEOSAuth: UserAuthGenerated: Login complete: EOS_Success
LogEOSAuth: WaitForProductUserId(ef1...930) in progress for 10.267168s.
LogEOSAuth: WaitForProductUserId(ef1...930) in progress for 10.289062s.
LogEOSAuth: WaitForProductUserId(ef1...930) in progress for 20.537193s.
LogEOSAuth: WaitForProductUserId(ef1...930) in progress for 20.628698s.
LogEOSAuth: WaitForProductUserId(ef1...930) in progress for 31.009222s.
...
LogEOSAuth: WaitForProductUserId(ef1...930) in progress for 113.678703s.
LogEOSAuth: WaitForProductUserId() initiating ResolveProductUserId() after timeout for: ef1...930
LogEOSAuth: WaitForProductUserId(ef1...930) in progress for 113.696320s.
LogEOSAuth: FAccountUtil::ResolveToProductUserId - No First Logged In User
LogEOSUI: Social Overlay: Achievements disabled because of missing product user id (EOS_InvalidAuth).
LogEOSAuth: WaitForProductUserId() initiating ResolveProductUserId() after timeout for: ef1...930
LogEOSAuth: FAccountUtil::ResolveToProductUserId - No First Logged In User

Do I miss some configuration API calls?
Thanks,
Oldes

Hello,

These logs hint that you haven’t called EOS_Connect_Login. EOS_Auth_Login will log you into Epic Account Services. To log into EOS Game Services (achievements are a game service), you need to also login via the EOS_Connect interface.

Here is a code snippet to help you out:

    EOS_Auth_Token* UserAuthToken = nullptr;

	assert(AuthHandle != nullptr);

	EOS_Auth_CopyUserAuthTokenOptions CopyTokenOptions = { 0 };
	CopyTokenOptions.ApiVersion = EOS_AUTH_COPYUSERAUTHTOKEN_API_LATEST;

	EOS_HConnect ConnectHandle = EOS_Platform_GetConnectInterface(PlatformHandle);
	assert(ConnectHandle != nullptr);

	if (EOS_Auth_CopyUserAuthToken(AuthHandle, &CopyTokenOptions, EpicId, &UserAuthToken) == EOS_EResult::EOS_Success)
	{
		LogFile << "EOS_Auth token:" << UserAuthToken->AccessToken << "\n";

		EOS_Connect_Credentials Credentials;
		Credentials.ApiVersion = EOS_CONNECT_CREDENTIALS_API_LATEST;
		Credentials.Token = UserAuthToken->AccessToken;
		Credentials.Type = EOS_EExternalCredentialType::EOS_ECT_EPIC;

		EOS_Connect_LoginOptions Options = { 0 };
		Options.ApiVersion = EOS_CONNECT_LOGIN_API_LATEST;
		Options.Credentials = &Credentials;
		Options.UserLoginInfo = nullptr;

		// Setup a context so the callback knows what AccountId is logging in.
		std::unique_ptr<FConnectLoginContext> ClientData(new FConnectLoginContext);
		ClientData->AccountId = EpicId;

		EOS_Connect_Login(ConnectHandle, &Options, ClientData.release(), ConnectLoginCompleteCb);
		EOS_Auth_Token_Release(UserAuthToken);
	}
	else
	{
		std::cout << "Failed to copy user auth token!" << std::endl;
		return 1;
	}

You can read more on this in the Connect Interface documentation.

If I’m mistaken and this isn’t your issue. Can you share your code?

Thanks,
Seb

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.