Skip to content

Stable 1.83.17 Hotfix#874

Merged
neon-nyan merged 8 commits intostablefrom
hotfix-1.83.17-stable
May 5, 2026
Merged

Stable 1.83.17 Hotfix#874
neon-nyan merged 8 commits intostablefrom
hotfix-1.83.17-stable

Conversation

@neon-nyan
Copy link
Copy Markdown
Member

@neon-nyan neon-nyan commented May 5, 2026

UpdateIsAvailable-Campaign

What's changed? - 1.83.17

  • [HSR][Fix] Crash due to Missing URLs on Audio and Video files while performing Game Repair, by @neon-nyan
  • [Plugin][Fix] File URL formatting and ensure successful HTTP response in plugin, by @Cryotechnic
  • [Sophon][Fix] Excessive File Package Size on Preload, by @Cryotechnic
  • [Sophon][Fix] Incorrect state display based on preload status, by @Cryotechnic
  • [Imp] Update WindowsAppSDK from v1.8 to v2.0 build

Full Changelog: CL-v1.83.16...CL-v1.83.17

Code Signing Policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation

  • This program will not transfer any information to other networked systems.
  • Read our full Privacy Policy
  • Also read our Third Party Notices for license used by third party libraries that we use.

neon-nyan and others added 8 commits May 6, 2026 02:31
Comment on lines +382 to +392
() => metadataAudioV?.DataList.FirstOrDefault(x => x.Filename?.EndsWith(".pck", StringComparison.OrdinalIgnoreCase) ?? false),
context => context.Audio,
(context, replace) => context.Audio = replace,
token);
await baseUrl.TestAndSwapUrlAsync(client,
mainUrlAsbAlt.CombineURLFromString("Video"),
() => metadataVideoV?.DataList.FirstOrDefault(x => x.Filename?.EndsWith(".usm", StringComparison.OrdinalIgnoreCase) ?? false),
context => context.Video,
(context, replace) => context.Video = replace,
token);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: After SwapAsbPersistentUrl() is called, TestAndSwapUrlAsync is invoked with identical primary and fallback URLs, causing the retry logic to fail without testing the original URL.
Severity: HIGH

Suggested Fix

When calling TestAndSwapUrlAsync after SwapAsbPersistentUrl, ensure the fallback URL parameter (urlBaseAlt) is set to the original primary URL, not the newly swapped alternate URL. This will allow the fallback mechanism to correctly test the original URL if the new one fails.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location:
CollapseLauncher/Classes/RepairManagement/StarRailV2/StarRailPersistentRefResult.cs#L379-L392

Potential issue: After `SwapAsbPersistentUrl()` is triggered, a subsequent call to
`TestAndSwapUrlAsync` for audio or video URLs results in the primary test URL and the
fallback URL being identical. For example, `baseUrl.Audio` is swapped to become the
alternate URL (`mainUrlAudioAlt`), and then `TestAndSwapUrlAsync` is called with both
the property to test and the fallback URL (`urlBaseAlt`) set to this same alternate URL.
If this URL returns a 404 error, the retry mechanism tests the same failing URL again,
throwing an `HttpRequestException` and preventing the repair operation from completing.
The original primary URL is never tested as a fallback, defeating the purpose of the
retry logic.

Did we get this right? 👍 / 👎 to inform future reviews.

@neon-nyan neon-nyan merged commit cd74667 into stable May 5, 2026
4 of 6 checks passed
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.

2 participants