Marantz SR7007 UPnP direct playback fails with Navidrome

App version

Production

Issue description

Direct UPnP playback from Navidrome to my Marantz SR7007 does not work correctly.

With “Proxy via Symfonium” enabled, playback works normally.

With “Proxy via Symfonium” disabled, the Marantz starts the track briefly, starts again briefly, then skips and hangs.

I captured the network traffic between the Marantz and Navidrome. Symfonium generates the stream URL correctly with normal “&” separators, and the DIDL-Lite metadata correctly uses XML-escaped “&”.

However, the Marantz SR7007 itself sends the HTTP request to Navidrome with “&” between the query parameters.

Navidrome then rejects the request with:
“invalid semicolon separator in query”

This happens repeatedly with different tracks.

Could there be a renderer-specific workaround for the older Marantz SR7007 UPnP implementation?

Device type

Phone

Media provider

Navidrome

Steps to reproduce

  1. Connect Symfonium to Navidrome.
  2. Select the Marantz SR7007 as UPnP renderer.
  3. Enable “UPnP: Renderer capabilities”.
  4. Enable “UPnP gapless playback”.
  5. Disable “Proxy via Symfonium”.
  6. Start an MP3 track.
  7. The Marantz starts playback briefly, starts again briefly, then skips and hangs.
  8. A packet capture shows that the Marantz requests the Navidrome stream URL using “&” instead of “&”.

Additional information

Symfonium: 15.0.1
Navidrome: 0.63.2
Marantz: SR7007
Marantz firmware: 9290-3179-0000-5190-9097

The attached tcpdump shows the actual HTTP request sent by the SR7007 to Navidrome. The Symfonium debug log shows that Symfonium generates the URL correctly before handing it to the UPnP renderer.

I suspect the SR7007 is double-escaping the URL when processing the UPnP/DIDL-Lite resource URL.

The issue occurs repeatedly with different tracks.

I searched existing issues first

on

I understand that logs are mandatory

on

Log upload name / description

Forum user: cyklop13 — Marantz SR7007 UPnP direct playback

I don’t control the what the receiver send to Navidrome and what Navidrome do from it.

That’s why there’s the proxy option to workaround those bugs.

See with Marantz so they fix or Navidrome so they maybe support that (I doubt)