Skip to content

bug: USB setup failure leaves DeckJoy in non-recoverable state until restart #7

@ioerrors

Description

@ioerrors

Summary

After Start USB fails (example: Deck connected to charging dock, not a host PC), DeckJoy shows an RPC error but may not recover cleanly for retry/use/exit flows.

Example error:
joystick setup failed: rpc error: code = Internal desc = enable error no udc device found

Environment

  • Device: Steam Deck OLED
  • Builds tested:
    • master (v0.2.1 baseline)
    • feat/black-screen-mode branch

Observed Behavior

  • Error appears after Start USB in non-host connection scenarios.
  • In some runs, app does not recover to normal controller mode afterward.
  • In some runs, closing DeckJoy appears to hang.
  • Error text overflow/off-screen was seen on master (UI issue).

Expected Behavior

  • Failed USB setup should be recoverable without restarting app.
  • Retrying after connection state changes should work.
  • App should always exit cleanly, even after setup failures.

Repro Steps

  1. Launch DeckJoy.
  2. Keep Deck connected to charging dock (no host PC for gadget mode).
  3. Press Start USB.
  4. Observe setup error.
  5. Attempt retry and/or close app.

Suspected Areas

  • deck.Run() returns after setup failure and may not restart retry path.
  • Start USB may start daemon but not re-run full setup lifecycle.
  • Shutdown path may depend on daemon/socket state after partial failure.

Related: #6

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions