#1705·librespot

Logging in via LibreWolf results in parse error in the OAuth callback

Author: spacidCreated Apr 18, 2026Updated Aug 17, 2026
Labelsbug

Description

Connecting via ncspot, which uses librespot as client library, completing the login flow in LibreWolf fails with the following error: Failed to parse redirect URI from HTTP request.

There is an issue with the data LibreWolf sends back through the socket and how librespot handles it.

Version

librespot 0.8.0

How to reproduce

  1. Start ncspot in terminal
  2. Open login link in LibreWolf
  3. Log in and allow app
  4. See: Failed to parse redirect URI from HTTP request in terminal

Debug

I've added some debug code in fn get_authcode_listener in oauth/src/lib.rs that prints out all of the incoming request lines. Output:

bash
request line: ""
request line: "GET /login?code={code} HTTP/1.1\r\n"

There is an empty line before the actual GET request. Librespot parses the first line and fails because it is empty:

rust
    let redirect_url = request_line
        .split_whitespace()
        .nth(1)
        .ok_or(OAuthError::AuthCodeListenerParse)?;

As an extra test, I've made a local patch that basically just skips empty request lines, and the OAuth flow then succeeds in LibreWolf (starting from ncspot).

Using vanilla Firefox (149.0.2), the redirect OAuth flow works normally. Meaning that there is no empty line being sent. There is probably some (default) configuration in LibreWolf that causes this behavior. I don't know what or why but I'm wondering if librespot should handle the callback information in a more robust manner.

Host (what you are running librespot on):

  • OS: Fedora 43
  • Platform: x86_64

Additional context

  • Ncspot 1.3.3
  • Librewolf 149.0.2-2
  • Vanilla Firefox 149.0.2 works correctly on the same machine with the same ncspot and librespot setup