AshGraphql error when resolving Aggregate

OrderItem defines the following:

  calculations do
    calculate :subtotal,
              :decimal,
              expr(
                type(price, :decimal) * type(quantity, :decimal) + type(modifiers_total, :decimal)
              ),
              public?: true
  end

  aggregates do
    sum :modifiers_total, :modifiers, :total, public?: true, default: 0
  end

Ash.read!(OrderItem, load: [:modifiers_total, :subtotal]) works as expected

query OrderItem($orderItemId: ID!) {
  orderItem(id: $orderItemId) {
   id
  #  subtotal
  #  modifiersTotal
  modifiers {
    id
    total
  }
  }
}

This GraphQL query works when modifiersTotal/subtotal are not included, but gives the following error on the server when they are:

[error] edd194bb-a06b-42ab-acbd-92e08c25876d: Exception raised while resolving query.

** (KeyError) key :arguments not found in: %{tracer: nil, tenant: nil, authorize?: false, actor: nil}

(ash 3.0.0-rc.45) lib/ash/resource/calculation/expression.ex:10: Ash.Resource.Calculation.Expression.expression/2
(ash_sql 0.1.1-rc.17) lib/aggregate.ex:718: anonymous fn/5 in AshSql.Aggregate.maybe_filter_subquery/6
(elixir 1.16.1) lib/enum.ex:4842: Enumerable.List.reduce/3
(elixir 1.16.1) lib/enum.ex:2582: Enum.reduce_while/3
(ash_sql 0.1.1-rc.17) lib/aggregate.ex:312: anonymous fn/10 in AshSql.Aggregate.add_aggregates/6
(ash_sql 0.1.1-rc.17) lib/join.ex:250: AshSql.Join.related_subquery/3
(ash_sql 0.1.1-rc.17) lib/aggregate.ex:159: anonymous fn/7 in AshSql.Aggregate.add_aggregates/6
(elixir 1.16.1) lib/enum.ex:4842: Enumerable.List.reduce/3
(elixir 1.16.1) lib/enum.ex:2582: Enum.reduce_while/3
(ash_sql 0.1.1-rc.17) lib/aggregate.ex:88: AshSql.Aggregate.add_aggregates/6
(ash 3.0.0-rc.45) lib/ash/query/query.ex:2858: Ash.Query.data_layer_query/2
(ash 3.0.0-rc.45) lib/ash/actions/read/read.ex:436: anonymous fn/5 in Ash.Actions.Read.do_read/4
(ash 3.0.0-rc.45) lib/ash/process_helpers.ex:38: anonymous fn/4 in Ash.ProcessHelpers.async/2
(elixir 1.16.1) lib/task/supervised.ex:101: Task.Supervised.invoke_mfa/2
(elixir 1.16.1) lib/task/supervised.ex:36: Task.Supervised.reply/4
(ash 3.0.0-rc.45) lib/ash/process_helpers.ex:32: Ash.ProcessHelpers.async/2
(ash 3.0.0-rc.45) lib/ash/process_helpers.ex:66: Ash.ProcessHelpers.task_with_timeout/5
(ash 3.0.0-rc.45) lib/ash/actions/read/read.ex:571: Ash.Actions.Read.maybe_in_transaction/3
(ash 3.0.0-rc.45) lib/ash/actions/read/read.ex:251: Ash.Actions.Read.do_run/3
(ash 3.0.0-rc.45) lib/ash/actions/read/read.ex:66: anonymous fn/3 in Ash.Actions.Read.run/3

Full code here: GitHub - BryceLabs/ash_issues_examples at arguments-not-found-query

Can you include specific steps to reproduce, or ideally a test in the reproduction repo? This looks like a bug on our end, will look into it when I have a chance, but may be a day or two.

1 Like

Yep, I’ll do that in a Github issue

1 Like

@zachdaniel Error when attempting to query an Aggregate · Issue #145 · ash-project/ash_graphql · GitHub

FYI this is fixed