File tree Expand file tree Collapse file tree
crates/server/src/admin/handlers/namespaces Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -9,7 +9,7 @@ description = "Core Calimero infrastructure and tools"
99# Update workspace metadata (see docs/RELEASE.md for versioning and release)
1010[workspace .metadata .workspaces ]
1111# Shared version of all public crates; bump this when cutting a release.
12- version = " 0.10.1-rc.30 "
12+ version = " 0.10.1-rc.31 "
1313exclude = [
1414 " ./apps/abi_conformance" ,
1515 " ./apps/blobs" ,
Original file line number Diff line number Diff line change @@ -106,6 +106,29 @@ pub async fn handler(
106106 Ok ( ( ) ) => {
107107 let group_id = calimero_context_config:: types:: ContextGroupId :: from ( group_id) ;
108108
109+ // Store the creator's signing key for the new subgroup. Without
110+ // this, any subsequent group-scoped op that needs to sign a
111+ // local governance message (delete_context -> ContextDetached,
112+ // add_group_members -> MemberAdded, etc.) fails with
113+ // "signing key not found for requester in group '...'".
114+ //
115+ // The direct create_group handler already stores the signing
116+ // key at crates/context/src/handlers/create_group.rs:85-94;
117+ // this keeps subgroups created via create_group_in_namespace in
118+ // sync with that invariant.
119+ if let Err ( err) = calimero_context:: group_store:: store_group_signing_key (
120+ & state. store ,
121+ & group_id,
122+ & signer_pk,
123+ & sk_bytes,
124+ ) {
125+ warn ! (
126+ group_id=%hex:: encode( group_id. to_bytes( ) ) ,
127+ ?err,
128+ "Group created but failed to store admin signing key"
129+ ) ;
130+ }
131+
109132 // Generate a group key for the subgroup so that encrypted
110133 // group-scoped governance ops (MemberAdded, ContextRegistered)
111134 // can be published and later decrypted by members.
You can’t perform that action at this time.
0 commit comments