Graphql custom resolver with aggregate isn't working on the client side

Noob here. I created a custom resolver on graphql and the function for that resolver filters and counts each type of one field. This is the code:

result = await collection.aggregate([
      { $match: { post_id: input.post_id} },
      { $group: { _id: '$unicode', count: { $sum: 1 } } },
      { $project: { unicode: '$_id', count: 1, _id: 0 } }
    ]).toArray();

This function works when I test it under the console with non-system users and also on graphiql. But when I fetch the data from the client side it is giving this error.

Error aggregating reactions: FunctionError: intermediate aggregation document does not satisfy schema: reason=“could not validate document: \n\t(root): user_id is required\n\t(root): post_id is required\n\t(root): _id is required”; code=“SchemaValidationFailedRead”; untrusted=“read not permitted”; details=map

I don’t see the reason for requiring user_id and _id as I am not using to query or filter the collection. Appreciate any help

Did you ever find the solution to this? I’ve encountered the same thing after updating my schema to include require fields. I can retrieve single documents without issue but my custom resolver fails.

Had a similar issue. If the collection isn’t too big maybe you can do collection.find().toArray() and add it manually for now in a loop until this gets fixed. Or lowering the GraphQL Settings Validation levels might work too, not sure if that’s a good idea though.

Does projecting the required fields stop it from erroring?