diff --git a/morph/lib/monitoring.nix b/morph/lib/monitoring.nix
index c52d19e872e9db547c4ba53df83db130da815312..0cedcf6498e485a69075c964ce3d4064baeadcae 100644
--- a/morph/lib/monitoring.nix
+++ b/morph/lib/monitoring.nix
@@ -82,6 +82,17 @@ in {
   };
 
   config = {
+    assertions = [
+      {
+        assertion = let
+          vpnIPs = (map (node: node.vpnIPv4) monitoringHosts);
+        in vpnIPs == lib.unique vpnIPs;
+        message = ''
+          Duplicate grid.monitoringvpnIPv4 values specified for different nodes.
+        '';
+      }
+    ];
+
     deployment.secrets = lib.mkMerge [
       {
         "monitoringvpn-private-key" = {