diff --git a/changes/bug24002 b/changes/bug24002
new file mode 100644
index 0000000000000000000000000000000000000000..cdb6081110f90571341cfd66f89eced6007e665c
--- /dev/null
+++ b/changes/bug24002
@@ -0,0 +1,5 @@
+  o Minor bugfixes (hidden service):
+    - Make sure that we have a usable ed25519 key when the intro point relay
+      does support ed25519 link authentication. We do check for an empty key
+      when the relay does not support it so this makes it nice and symmetric.
+      Fixes bug 24002; bugfix on 0.3.2.1-alpha.
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index 3d1945aa9585493aea73f3add56ec4e62448f17a..4b67bb4d42c011295796441dfdf1409f5fba6cef 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -1564,6 +1564,10 @@ pick_intro_point(unsigned int direct_conn, smartlist_t *exclude_nodes)
    * protocol */
   if (!node_supports_ed25519_link_authentication(node)) {
     tor_assert_nonfatal(ed25519_public_key_is_zero(&info->ed_identity));
+  } else {
+    /* Make sure we *do* have an ed key if we support the link authentication.
+     * Sending an empty key would result in a failure to extend. */
+    tor_assert_nonfatal(!ed25519_public_key_is_zero(&info->ed_identity));
   }
 
   /* Create our objects and populate them with the node information. */