Skip to content

Bug: --change-state CLI silently fails (calls non-existent method) #571

Closed

Description

@tyvsmith

Description

The --change-state CLI command (added in #460) silently fails — it exits with code 0 but has no effect on the StreamDeck device.

Root Cause

on_change_state in src/app.py and the api_state_requests handler in src/backend/DeckManagement/DeckController.py both call gl.page_manager.get_best_page_path_match_from_name(), which does not exist on PageManagerBackend. The correct method is find_matching_page_path(), which on_change_page and the api_page_requests handler already use correctly.

The AttributeError is swallowed by GTK's D-Bus action handler, so there is no error output or log entry — the command just silently does nothing.

Steps to Reproduce

  1. Set up a StreamDeck button with multiple states
  2. Run: streamcontroller --change-state <SERIAL> <PAGE> <x,y> 1
  3. Observe: command exits successfully, but button state does not change
  4. Check logs: no on_change_state log entry appears

Expected Behavior

The button state should change on the physical device and in the UI, with a log entry like:

Successfully changed state of (x,y) to state 1 on device <SERIAL>

Environment

  • StreamController installed via AUR (streamcontroller-git)
  • Stream Deck Original
  • Arch Linux

Fix

#570

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    • Status
      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions