diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,17 @@
+# 7.2.1
+
+## Fixes
+
+* Mark WirePlumber metadata-changed signal string parameters as nullable in the
+  generated GI bindings, preventing crashes when WirePlumber emits NULL
+  metadata values while clearing defaults.
+
+## Packaging
+
+* Bump the package version to 7.2.1.
+* Require `gi-wireplumber >= 0.5.14.2` for the nullable
+  metadata-changed signal binding.
+
 # 7.2.0
 
 ## New Features
diff --git a/src/System/Taffybar/Information/WirePlumber.hs b/src/System/Taffybar/Information/WirePlumber.hs
--- a/src/System/Taffybar/Information/WirePlumber.hs
+++ b/src/System/Taffybar/Information/WirePlumber.hs
@@ -248,8 +248,12 @@
               maybeMetadata <- ManagedPtr.castTo Metadata.Metadata object
               forM_ maybeMetadata $ \metadata -> do
                 handler <-
-                  Metadata.onMetadataChanged metadata $ \subject key _type _value ->
-                    when (subject == 0 && key `elem` defaultMetadataKeys) refresh
+                  Metadata.onMetadataChanged metadata $ \subject maybeKey _type _value ->
+                    when
+                      ( subject == 0
+                          && maybe False (`elem` defaultMetadataKeys) maybeKey
+                      )
+                      refresh
                 rememberSignal handler
               pure maybeMetadata
 
diff --git a/taffybar.cabal b/taffybar.cabal
--- a/taffybar.cabal
+++ b/taffybar.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.4
 name: taffybar
-version: 7.2.0
+version: 7.2.1
 synopsis: A desktop bar similar to xmobar, but with more GUI
 description: Taffybar is a desktop status bar with GTK widgets for window
   manager state, system information, tray icons, and custom user modules.
@@ -90,7 +90,7 @@
                , gi-gtk3 >= 3.0.44 && < 4
                , gi-gtk-hs >= 0.3.17 && < 0.4
                , gi-pango >= 1.0 && < 1.1
-               , gi-wireplumber >= 0.5.14.1 && < 0.6
+               , gi-wireplumber >= 0.5.14.2 && < 0.6
                , gtk-scaling-image >= 0.1.0.1 && < 0.2
                , gtk-sni-tray >= 0.2.1.2 && < 0.3
                , gtk-strut >= 0.1.4.1 && < 0.2
diff --git a/test/lib/System/Taffybar/Test/UtilSpec.hs b/test/lib/System/Taffybar/Test/UtilSpec.hs
--- a/test/lib/System/Taffybar/Test/UtilSpec.hs
+++ b/test/lib/System/Taffybar/Test/UtilSpec.hs
@@ -329,7 +329,7 @@
     let t = 50_000
     laxTimeout t (threadDelay (t * 2)) `shouldReturn` Nothing
 
-  describe "withService" $ around_ (laxTimeout' 100_000) $ do
+  describe "withService" $ around_ (laxTimeout' 1_000_000) $ do
     let wait = const $ threadDelay maxBound
     it "normal" $
       example $
