diff --git a/lnrpc/signrpc/signer_server.go b/lnrpc/signrpc/signer_server.go
index <HASH>..<HASH> 100644
--- a/lnrpc/signrpc/signer_server.go
+++ b/lnrpc/signrpc/signer_server.go
@@ -938,10 +938,15 @@ func (s *Server) MuSig2CombineSig(_ context.Context,
 		return nil, fmt.Errorf("error combining signatures: %v", err)
 	}
 
-	return &MuSig2CombineSigResponse{
+	resp := &MuSig2CombineSigResponse{
 		HaveAllSignatures: haveAllSigs,
-		FinalSignature:    finalSig.Serialize(),
-	}, nil
+	}
+
+	if haveAllSigs {
+		resp.FinalSignature = finalSig.Serialize()
+	}
+
+	return resp, err
 }
 
 // MuSig2Cleanup removes a session from memory to free up resources.
signer: fix crash when musig combine doesn't have final sig