Skip to content

[Problem]: 5.1: no track metadata delivered (pipe and D-Bus both empty) — 4.3.7 works on the same setup #2239

Description

@leodurandfr

What happened?

Since upgrading from 4.3.7 to 5.1, no track metadata (title/artist/album/cover art) is delivered any more — neither through the metadata pipe nor through the D-Bus interface. Downgrading the binary to 4.3.7, with an unchanged configuration file and an unchanged sender, restores it immediately. I expected metadata to keep working as it did on 4.3.7.

On 5.1, play state still arrives normally, so the pipe itself is alive and being read: conn, snam and pbeg/pend all come through. But no core DMAP items (minm/asar/asal) and no PICT ever arrive. The D-Bus interface agrees: RemoteControl.Metadata stays empty during active playback. Since D-Bus is empty too, this looks like it is upstream of the pipe interface — the metadata does not seem to reach Shairport Sync at all.

Sender: macOS 26 (Mac mini), system audio output selected in Control Center. Same result from an iPhone. Both sessions report StreamType = "Realtime".

What I ruled out:

  • Not the pipe interface or its reader — control items flow on both versions, and D-Bus is empty on 5.1 as well.
  • Not the configuration — the same configuration file was used for both binaries (only the binary was swapped).
  • Not the sender or the stream type — identical sender, both sessions report StreamType = "Realtime".
  • Not DACP availability — RemoteControl.Available is false on both versions, including the one where metadata works.

One possibly relevant difference: the mDNS TXT records differ substantially between the two versions on this machine.

4.3.7 : vs=950.7.1  ft=0x4A7FCFD5,0x38174FDE  md=0,1,2
5.1   : vs=366.0    ft=0x405C4A00,0x58340     md=0,1,2

md=0,1,2 is advertised in both cases, but the ft feature bits are much narrower on 5.1.

I notice the DMAP parser was reworked in #2217/#2218 (for #2216) between 5.0.4 and 5.1 — I have not verified whether that is related, but it seemed worth mentioning given the timing.

I can reproduce on demand and can switch between the two binaries in seconds, so I am happy to run any diagnostic, including a -vv capture on 5.1 if that would help.

Relevant log output

D-Bus properties read during active playback, same machine, same sender, same track source.

    ===== 5.1 — playing, no metadata =====
    RemoteControl.PlayerState    : "Playing"
    RemoteControl.StreamType     : "Realtime"
    RemoteControl.Available      : false
    RemoteControl.Metadata       : {} (empty)
    RemoteControl.ProgressString : ""

    ===== 4.3.7 — playing, metadata present =====
    RemoteControl.PlayerState    : "Playing"
    RemoteControl.StreamType     : "Realtime"
    RemoteControl.Available      : false
    RemoteControl.Metadata       : 7 entries —
      "xesam:title"  = "Under Attack"
      "xesam:artist" = ["Mom Tudie"]
      "xesam:album"  = "As the Crows"
      "mpris:artUrl" = "file:///tmp/shairport-sync/.cache/coverart/cover-....jpg"
      "mpris:length" = 215474000
    RemoteControl.ProgressString : "4276420038/4277239545/4285922441"

On 4.3.7 the metadata pipe also delivers `minm`/`asar`/`asal` plus a 512x512 `PICT` for every track; on 5.1 neither appears.

System Information.

Hardware : Raspberry Pi 5 Model B Rev 1.1
DAC      : HiFiBerry Amp4 Pro (dtoverlay=hifiberry-amp4pro, snd_rpi_hifiberry_dacplus)
OS       : Debian GNU/Linux 13 (trixie)
Kernel   : Linux 6.18.34+rpt-rpi-2712 aarch64
Output   : ALSA only (no PulseAudio, no PipeWire). shairport-sync writes to an
           snd-aloop loopback device, which is captured by CamillaDSP and played
           out to the DAC.

Configuration Information.

Output of `shairport-sync -c /etc/shairport-sync.conf --displayConfig`, run with the **5.1** binary (the affected version):

    >> Display Config Start.

    From "uname -a":
     Linux milo 6.18.34+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.34-1+rpt1 (2026-06-09) aarch64 GNU/Linux

    From /etc/os-release:
     Debian GNU/Linux 13 (trixie)

    From /sys/firmware/devicetree/base/model:
     Raspberry Pi 5 Model B Rev 1.1

    Shairport Sync Version String:
     5.1-AirPlay2-smi10-OpenSSL-Avahi-ALSA-soxr-metadata-dbus-sysconfdir:/etc

    Configuration File:
     /etc/shairport-sync.conf

    Configuration File Settings:
     general :
     {
       name = "Milō · AirPlay";
       interpolation = "auto";
       output_backend = "alsa";
       mdns_backend = "avahi";
       ignore_volume_control = "yes";
     };
     alsa :
     {
       output_device = "milo_airplay";
       output_format = "S32_LE";
     };
     metadata :
     {
       enabled = "yes";
       include_cover_art = "yes";
       pipe_name = "/tmp/shairport-sync-metadata";
       pipe_timeout = 5000;
     };

    >> Display Config End.

Note: the `output_format = "S32_LE"` line was added after the fact, while testing on 4.3.7; at the time the 5.1 problem was observed, the `alsa` block contained only `output_device`. Nothing else differs.

Configure flags used for both builds:

    --sysconfdir=/etc --with-alsa --with-avahi --with-ssl=openssl --with-soxr
    --with-metadata --with-airplay-2 --with-dbus-interface

PulseAudio or PipeWire installed?

  • Check if your system uses a Sound Server.

How did you install Shairport Sync?

Built from source

Check previous issues

  • Confirm

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions