Skip to content

Soloist download failure logs no underlying cause #950

Open

Description

@LargeModGames

What happened

A user's first Soloist download failed and the log only says:

[19:14:07][spotatui::infra::soloist::download][WARN] soloist: download failed: error decoding response body
[19:14:29][spotatui::infra::soloist::download][INFO] soloist: downloaded soloist_release_x86_64.tar.gz to /home/<user>/.local/state/spotatui/soloist-bin/1793195061/soloist

The second try 22 seconds later worked. error decoding response body is reqwest's top-level text for any error while it reads the body (a reset connection, the 30 s read_timeout, a cut stream), so the log does not say which one it was. run in src/infra/soloist/download.rs logs {error} only, without the source chain.

Expected: the warning shows the underlying cause. A single automatic retry in fetch for a body read error would also have saved the user the second click.

Steps to reproduce

  1. Set Playback Engine to Soloist on a machine without the binary.
  2. Have the connection drop or stall during the download.
  3. The log shows download failed: error decoding response body and nothing more.

Frontend

Terminal app

Source

Spotify

spotatui version

0.47.0

OS

Debian

How you installed spotatui

Download from GitHub Releases

Debug log

The two lines above are from the user's log; the rest of it is unrelated librespot audio-key errors from before the switch.

Activity

  1. spotatui commented on Oct 28, 2026

    @spotatui
    Contributor

    🎧 spotatui triage

    Auto-triaged with claude-opus-5-5.

    Label: enhancement
    Likely area: Soloist binary download (infra/soloist)

    Summary

    A user's first Soloist download failed, and the log only said soloist: download failed: error decoding response body. That text is reqwest's top-level message for any error while reading the body, so the log hides the real cause. A second try 22 seconds later worked. The reporter wants the warning to show the full error source chain, and suggests one automatic retry in fetch when the body read fails. The changelog does not show this as fixed.

    Key points

    • spotatui 0.47.0 from GitHub Releases on Debian, terminal app, Spotify source.
    • Log line: soloist: download failed: error decoding response body. A retry 22 seconds later downloaded soloist_release_x86_64.tar.gz.
    • The reporter says the error can come from a reset connection, the 30 s read_timeout or a cut stream, and the log does not say which.
    • run in src/infra/soloist/download.rs logs only {error}, without the source chain.
    • Suggested: log the underlying cause, and retry once in fetch on a body read error.

    Where to look

    • src/infra/soloist/download.rs: run logs the warning, and fetch sets the 30 s read_timeout and reads the body with response.chunk(). Also, the failed helper turns each error into a String with to_string(), so the source ch
    • src/core/app/soloist.rs: Probably holds soloist_download_finished and soloist_download_progress, which take the download result and progress. A retry would have to fit with them.

    Possible duplicates: none found

    Compared against 44 open and 100 recently closed issues.

  2. niukanen1 commented on Oct 28, 2026

    @niukanen1
    Contributor

    I can take this: the download warning will include the full error chain (the underlying connection reset or timeout, not just "error decoding response body"). The automatic retry I would keep as a separate follow-up.

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

    bugSomething isn't workingenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions