Skip to content

Fix desktop addon request failures after repeated fetches#104

Open
amackarrey wants to merge 1 commit into
NuvioMedia:Devfrom
amackarrey:fix/desktop-addon-socket-exhaustion
Open

Fix desktop addon request failures after repeated fetches#104
amackarrey wants to merge 1 commit into
NuvioMedia:Devfrom
amackarrey:fix/desktop-addon-socket-exhaustion

Conversation

@amackarrey

Copy link
Copy Markdown

Summary

Fixes repeated desktop addon request failures where metadata and stream fetching can start failing with:

java.io.IOException: Can't assign requested address

The fix reuses desktop HTTP clients, limits concurrent addon HTTP requests, and retries transient socket-level failures.

PR type

  • Reproducible bug fix
  • UI glitch/bug fix
  • Behavior bug/regression fix
  • Small maintenance only, with no UI or behavior change
  • Docs accuracy fix
  • Translation/localization only
  • Approved larger or directional change

Why

After repeated metadata and stream fetches, desktop addon requests can fail with Can't assign requested address. When this happens, addons such as AIOStreams and AIOMetadata may return no streams or stop loading metadata until the app is restarted.

The old desktop implementation also created a new no-redirect HttpClient for requests that disabled redirects. This PR keeps the fix focused on desktop addon request reliability.

Desktop scope

Desktop shared addon networking code is affected.

This was reported on macOS, but the changed code is in the desktop source set and applies to desktop addon HTTP requests generally.

Issue or approval

Fixes #78

UI / behavior impact

  • No UI change
  • No behavior change
  • UI changed only to fix a documented glitch/bug
  • Behavior changed only to fix a documented bug/regression
  • UI change has explicit maintainer approval
  • Behavior change has explicit maintainer approval

Policy check

  • I have read and understood CONTRIBUTING.md.
  • This PR is small, focused, and limited to one problem.
  • This PR is scoped to the desktop app, desktop packaging, desktop documentation, or shared code required for desktop behavior.
  • This PR is not cosmetic-only.
  • Any UI change fixes a linked glitch/bug and includes visual proof, or this PR has no UI change.
  • Any behavior change fixes a linked bug/regression or has explicit approval, or this PR has no behavior change.
  • This PR does not bundle unrelated refactors, cleanups, formatting, or drive-by changes.
  • This PR does not add dependencies, architecture changes, migrations, or product-direction changes without explicit approval.
  • I listed the testing performed below.

UI polish, cosmetic-only changes, minor behavior tweaks, and unapproved product changes will be closed without review.

Scope boundaries

This PR only changes desktop addon HTTP request handling.

It does not change UI, stream ranking, addon parsing, metadata parsing, playback behavior, release versioning, dependencies, or packaging configuration.

Testing

Tested on macOS.

Commands run:

./gradlew :composeApp:desktopTest -x :composeApp:buildMacosPlayerBridge --no-daemon

Result: passed.

Screenshots / Video

Not a UI change.

Breaking changes

None.

Linked issues

Fixes #78

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.

[Bug]: Network issues after some time addons stream and metadata requests intermittently fail with "Can't assign requested address"- macOS

1 participant