hermes - 💡(How to fix) Fix Spotify: add spotify.default_device_name config knob [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#15611Fetched 2026-04-26 05:26:16
View on GitHub
Comments
0
Participants
1
Timeline
6
Reactions
0
Author
Participants
Timeline (top)
cross-referenced ×3labeled ×3

Error Message

  • If the named device isn't currently online, return a clear error ('configured default device "Kitchen Sonos" is offline — available: ...') rather than silently falling back to Spotify's guess

Fix Action

Fix / Workaround

  • plugins/spotify/tools.py: before each playback call that accepts device_id, if args.get('device_id') is empty, look up the configured default and substitute.
  • skills/media/spotify/SKILL.md: update the 'no active device' failure-mode section to mention this as the recommended mitigation.
  • Docs: add to website/docs/user-guide/features/spotify.md under a new 'Default device' subsection.

Code Example

spotify:
  default_device_name: "Kitchen Sonos"
RAW_BUFFERClick to expand / collapse

Small quality-of-life improvement to reduce 'no active device' friction for Spotify users.

Problem

Every Spotify playback action (play, pause, skip, queue add, etc.) targets Spotify's current 'active' device. If nothing is active, the call returns 403 Forbidden — No active device found and the user has to open Spotify on some device before retrying.

Users with an always-on device (Sonos, Echo, smart speaker) hit this needlessly often. Their speaker is always online and ready, but Spotify doesn't consider it 'active' unless something's playing or recently played on it.

Proposal

Add spotify.default_device_name to config.yaml (string, default empty).

When set, the Spotify tools resolve the name to a device_id at call time (via spotify_devices list, match on name case-insensitively) and pass it as device_id to any playback action that didn't get one explicitly.

spotify:
  default_device_name: "Kitchen Sonos"

Where it plugs in

  • plugins/spotify/tools.py: before each playback call that accepts device_id, if args.get('device_id') is empty, look up the configured default and substitute.
  • skills/media/spotify/SKILL.md: update the 'no active device' failure-mode section to mention this as the recommended mitigation.
  • Docs: add to website/docs/user-guide/features/spotify.md under a new 'Default device' subsection.

Why not just always target the last-used device?

Spotify's Web API already does that. The problem is that 'last-used' can be a phone that's now off. An explicit user-configured name sidesteps the ambiguity.

Acceptance

  • spotify.default_device_name: "Kitchen Sonos" in config.yaml
  • User runs hermes in a fresh tab with nothing playing anywhere
  • Agent calls spotify_playback play with no device_id → tool resolves 'Kitchen Sonos' → music plays there
  • If the named device isn't currently online, return a clear error ('configured default device "Kitchen Sonos" is offline — available: ...') rather than silently falling back to Spotify's guess
  • Explicit device_id in the tool call always wins over the config default

Relation to other issues

Unblocks gateway slash commands (/play, /pause, etc.) — see the separate issue on that. Also improves agent UX independently.

extent analysis

TL;DR

To reduce 'no active device' friction for Spotify users, set a default device name in config.yaml to automatically target a specific device for playback actions.

Guidance

  • Add spotify.default_device_name to config.yaml with the desired device name as a string value.
  • Update plugins/spotify/tools.py to resolve the default device name to a device_id and pass it to playback actions if no device_id is provided.
  • Verify the fix by running hermes with no active devices and checking if music plays on the configured default device.
  • If the named device is offline, ensure a clear error message is returned instead of silently falling back to Spotify's guess.

Example

spotify:
  default_device_name: "Kitchen Sonos"

Notes

This solution assumes that the device name is correctly resolved to a device_id via spotify_devices list. If the device is not found, an error should be returned.

Recommendation

Apply the proposed workaround by setting spotify.default_device_name in config.yaml to reduce 'no active device' friction for Spotify users. This approach provides a more explicit and reliable way to target a specific device for playback actions.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix Spotify: add spotify.default_device_name config knob [1 participants]