Skip to content

Eosu 1026 achievements stop working#1257

Open
JessTello wants to merge 5 commits intorelease-6.1.0from
eosu-1026-achievements-stop-working
Open

Eosu 1026 achievements stop working#1257
JessTello wants to merge 5 commits intorelease-6.1.0from
eosu-1026-achievements-stop-working

Conversation

@JessTello
Copy link
Copy Markdown
Contributor

@JessTello JessTello commented Mar 12, 2026

  • Restored achievements operations after auth expiry and added UI safeguards during async icon loads.
  • Added SemaphoreSlim-based serialized recovery via EnsureValidProductUserIdAsync to refresh ProductUserId and cached achievements.
  • Implemented retry logic for EOS calls through ShouldRetryAfterReconnect, updating QueryPlayerAchievementsAsync and UnlockAchievementAsync to transparently retry on transient auth connect failures.
  • Reworked unlock flow to return a concrete PlayerAchievement and update _playerAchievements atomically on success, enhancing error reporting for invalid inputs.
  • Improved icon download and cache handling: added TryGetValue checks, URI validation, null-callback early returns, and synchronous return for cached data.
  • Added UI guard in UIAchievementsMenu.DisplayPlayerAchievement to show descriptive messages and disable controls when ProductUserId is null or invalid.

DanF-ApexSystems and others added 3 commits February 10, 2026 11:05
- Added a persisted refresh action s_connectLoginRefreshAction to com.playeveryware.eos/Runtime/Core/EOSManager.cs so the manager can run an up-to-date re-login strategy when connect credentials expire.
- Registered refresh actions at all Connect entry points: StartConnectLoginWithEpicAccount, StartConnectLoginWithOptions(ExternalCredentialType, ...), and StartConnectLoginWithOptions(LoginOptions, ...) so the latest login path can be retried on expiration.
- Replaced the previous direct call that retried the captured connectLoginOptions in the expiration callback with a centralized RefreshConnectLoginSession() that invokes the stored action.
- Added CloneConnectLoginOptions helper to capture a safe snapshot for the LoginOptions path and added logging when a refresh action is missing.
@JessTello JessTello requested review from a team, billfr-ApexSystems and matt-clarke March 12, 2026 06:31
matt-clarke
matt-clarke previously approved these changes Mar 18, 2026
- Restored achievements operations after auth expiry and added UI safeguards during async icon loads.
- Added SemaphoreSlim-based serialized recovery via EnsureValidProductUserIdAsync to refresh ProductUserId and cached achievements.
- Implemented retry logic for EOS calls through ShouldRetryAfterReconnect, updating QueryPlayerAchievementsAsync and UnlockAchievementAsync to transparently retry on transient auth connect failures.
- Reworked unlock flow to return a concrete PlayerAchievement and update _playerAchievements atomically on success, enhancing error reporting for invalid inputs.
- Improved icon download and cache handling: added TryGetValue checks, URI validation, null-callback early returns, and synchronous return for cached data.
- Added UI guard in UIAchievementsMenu.DisplayPlayerAchievement to show descriptive messages and disable controls when ProductUserId is null or invalid.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants