I'm confused, I get an error the first time I execute this, then if I execute In[3] again there's no error
In[1]:= data = {<|"a" -> 1, "b" -> 2|>, <|"a" -> 3, "b" -> 4|>}
In[2]:= ds = Dataset[data]
In[3]:= Query[All, {"a", "b"} /* <| #&, "f1" -> #a ^2 + #b &, "f2" -> N[Sin[#b + #a]] & |>]@ds
however this works fine
In[1]:= data = {<|"a" -> 1, "b" -> 2|>, <|"a" -> 3, "b" -> 4|>}
In[2]:= ds = Dataset[data]
In[3]:= Query[All, {"a", "b"} /* <| #&, "f1" -> #a ^2 + #b &, "f2" -> N[Sin[#b + #a]] & |>]@data
this is what motivated my comment above