diff --git a/src/net_processing.cpp b/src/net_processing.cpp
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -1759,9 +1759,13 @@
             LogPrint(BCLog::AVALANCHE,
                      "Requesting compact proofs from peer %d\n",
                      pavanode->GetId());
-            m_connman.PushMessage(pavanode,
-                                  CNetMsgMaker(pavanode->GetCommonVersion())
-                                      .Make(NetMsgType::GETAVAPROOFS));
+            if (pavanode->m_proof_relay) {
+                m_connman.PushMessage(pavanode,
+                                      CNetMsgMaker(pavanode->GetCommonVersion())
+                                          .Make(NetMsgType::GETAVAPROOFS));
+
+                pavanode->m_proof_relay->compactproofs_requested = true;
+            }
             return true;
         });
     }
diff --git a/test/functional/abc_p2p_compactproofs.py b/test/functional/abc_p2p_compactproofs.py
--- a/test/functional/abc_p2p_compactproofs.py
+++ b/test/functional/abc_p2p_compactproofs.py
@@ -171,6 +171,10 @@
                             == outbounds_getavaproofs + num_outbound_avapeers)
             outbounds_getavaproofs += num_outbound_avapeers
 
+            for p in outbound_avapeers:
+                with node.assert_debug_log(["received: avaproofs"], ["Ignoring unsollicited avaproofs"]):
+                    p.send_message(build_msg_avaproofs([]))
+
         with p2p_lock:
             assert all([p.message_count.get(
                 "getavaproofs", 0) == 0 for p in non_avapeers])