GNU Radio SoapySDR doesn't detect RTL-SDR

I’ve recently managed to get my RTL-SDR clone to be recognized by applications like SDRangel and welle.io using the following lines in configuration.nix:

hardware.rtl-sdr.enable = true;
users.users.foxner.extraGroups = [ "plugdev" ];

following the answer here. Attempting to read from the SDR from within GNU Radio though, the only relevant block I found was Soapy RTLSDR Source, which throws this error:

  self.soapy_rtlsdr_source_0 = soapy.source(dev, "fc32", 1, '',
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: SoapySDR::Device::make() no match

I have no experience with SoapySDR. In the past I used the osmocom source block on Windows, which worked fine, but the block is now missing from GNU Radio, and as I understand the SoapySDR block is supposed to take its place.
Why can other applications detect the SDR, but not GNU Radio?

I am not sure but I think you missed some extraPackages like gnuradioPackages.osmosdr
I have zero knowledge in GNU radio but these links may help.

https://wiki.nixos.org/wiki/GNU_Radio

https://search.nixos.org/packages?query=gnuradio

SDRangel and welle-io already build with rtl-sdr dependency.

soapysdr depends on being able to load plugins at runtime but since plugins are contained in their own derivations you have to set SOAPY_SDR_PLUGIN_PATH for them to be found.

In my devshells I use something like this:

shellHook = ''
  export SOAPY_SDR_PLUGIN_PATH="${pkgs.lib.makeSearchPath pkgs.soapysdr.passthru.searchPath [ pkgs.soapyrtlsdr ]}";
'';

I gave the following shell.nix a try to no avail:

{pkgs ? import <nixpkgs> {}}:

pkgs.mkShell {
  buildInputs = with pkgs; [
    rtl-sdr
    gnuradio
    soapysdr-with-plugins
  ];

  shellHook = ''
    export SOAPY_SDR_PLUGIN_PATH="${pkgs.lib.makeSearchPath pkgs.soapysdr.passthru.searchPath [ pkgs.soapyrtlsdr ]}";
  '';
}