Product
Hot Chocolate
Version
15.1.3
Link to minimal reproduction
https://github.com/cabillin/hot-chocolate-issues/tree/flag_enum_incorrect_handling
Steps to reproduce
query bob {
parents(first: 1) {
nodes {
childId
id
flags {
isANA
}
}
}
}
What is expected?
{
"data": {
"parents": {
"nodes": [
{
"childId": "Child1",
"id": 1,
"flags": {
"isANA": false
}
}
]
}
}
}
What is actually happening?
{
"errors": [
{
"message": "Unexpected Execution Error",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"parents"
],
"extensions": {
"message": "Property 'Int32 Count' is not defined for type 'HotChocolate.Issues.Classes.FlagEnum' (Parameter 'property')",
"stackTrace": " at System.Linq.Expressions.Expression.Property(Expression expression, PropertyInfo property)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildAssignmentExpression(PropertyNode node, Context context)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildSelectionSetExpression(Context context, TypeNode parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildTypeSwitchExpression(Context context, TypeContainer parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildAssignmentExpression(PropertyNode node, Context context)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildSelectionSetExpression(Context context, TypeNode parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildTypeSwitchExpression(Context context, TypeContainer parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildExpression[TRoot](ISelection selection)\r\n at HotChocolate.Execution.Processing.HotChocolateExecutionSelectionExtensions.<>c__2`1.<GetOrCreateExpression>b__2_0(String _, ValueTuple`2 ctx)\r\n at HotChocolate.Execution.Processing.Operation.GetOrAddState[TState,TContext](String key, Func`3 createState, TContext context)\r\n at HotChocolate.Execution.Processing.HotChocolateExecutionSelectionExtensions.GetOrCreateExpression[TValue](ISelection selection)\r\n at HotChocolate.Execution.Processing.HotChocolateExecutionSelectionExtensions.AsSelector[TValue](ISelection selection)\r\n at HotChocolate.Data.QueryContextParameterExpressionBuilder.CreateQueryContext[T](IResolverContext context)\r\n at lambda_method3(Closure, IResolverContext)\r\n at HotChocolate.Types.Helpers.FieldMiddlewareCompiler.<>c__DisplayClass9_0.<<CreateResolverMiddleware>b__0>d.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at HotChocolate.Types.UnwrapFieldMiddlewareHelper.<>c__DisplayClass0_1.<<CreateDataMiddleware>b__1>d.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at HotChocolate.Types.Pagination.PagingMiddleware.InvokeAsync(IMiddlewareContext context)\r\n at HotChocolate.Execution.Processing.Tasks.ResolverTask.ExecuteResolverPipelineAsync(CancellationToken cancellationToken)\r\n at HotChocolate.Execution.Processing.Tasks.ResolverTask.TryExecuteAsync(CancellationToken cancellationToken)"
}
}
],
"data": {
"parents": null
}
}
Additional Context
query bob {
parents(first: 1) {
nodes {
childId
id
}
}
}
works
query bob {
parents(first: 2, where: { flags: { eq: { isANA: true } } }) {
nodes {
childId
id
}
}
}
returns successfully, but I'm not sure if it is working correctly. I would have expected to get back id 3 and id 5, but I only get back id 3
Product
Hot Chocolate
Version
15.1.3
Link to minimal reproduction
https://github.com/cabillin/hot-chocolate-issues/tree/flag_enum_incorrect_handling
Steps to reproduce
What is expected?
{ "data": { "parents": { "nodes": [ { "childId": "Child1", "id": 1, "flags": { "isANA": false } } ] } } }What is actually happening?
{ "errors": [ { "message": "Unexpected Execution Error", "locations": [ { "line": 2, "column": 3 } ], "path": [ "parents" ], "extensions": { "message": "Property 'Int32 Count' is not defined for type 'HotChocolate.Issues.Classes.FlagEnum' (Parameter 'property')", "stackTrace": " at System.Linq.Expressions.Expression.Property(Expression expression, PropertyInfo property)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildAssignmentExpression(PropertyNode node, Context context)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildSelectionSetExpression(Context context, TypeNode parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildTypeSwitchExpression(Context context, TypeContainer parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildAssignmentExpression(PropertyNode node, Context context)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildSelectionSetExpression(Context context, TypeNode parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildTypeSwitchExpression(Context context, TypeContainer parent)\r\n at HotChocolate.Execution.Projections.SelectionExpressionBuilder.BuildExpression[TRoot](ISelection selection)\r\n at HotChocolate.Execution.Processing.HotChocolateExecutionSelectionExtensions.<>c__2`1.<GetOrCreateExpression>b__2_0(String _, ValueTuple`2 ctx)\r\n at HotChocolate.Execution.Processing.Operation.GetOrAddState[TState,TContext](String key, Func`3 createState, TContext context)\r\n at HotChocolate.Execution.Processing.HotChocolateExecutionSelectionExtensions.GetOrCreateExpression[TValue](ISelection selection)\r\n at HotChocolate.Execution.Processing.HotChocolateExecutionSelectionExtensions.AsSelector[TValue](ISelection selection)\r\n at HotChocolate.Data.QueryContextParameterExpressionBuilder.CreateQueryContext[T](IResolverContext context)\r\n at lambda_method3(Closure, IResolverContext)\r\n at HotChocolate.Types.Helpers.FieldMiddlewareCompiler.<>c__DisplayClass9_0.<<CreateResolverMiddleware>b__0>d.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at HotChocolate.Types.UnwrapFieldMiddlewareHelper.<>c__DisplayClass0_1.<<CreateDataMiddleware>b__1>d.MoveNext()\r\n--- End of stack trace from previous location ---\r\n at HotChocolate.Types.Pagination.PagingMiddleware.InvokeAsync(IMiddlewareContext context)\r\n at HotChocolate.Execution.Processing.Tasks.ResolverTask.ExecuteResolverPipelineAsync(CancellationToken cancellationToken)\r\n at HotChocolate.Execution.Processing.Tasks.ResolverTask.TryExecuteAsync(CancellationToken cancellationToken)" } } ], "data": { "parents": null } }Additional Context
works
returns successfully, but I'm not sure if it is working correctly. I would have expected to get back id 3 and id 5, but I only get back id 3