Using Ash.Query in Ash.Query.load
After updating ash from 3.4.62 to 3.5.12 the following code causes an error. How do I fix this?
Error.Unknown.UnknownError{
error: "** (BadMapError) expected a map, got: nil",
field: nil,
value: nil,
splode: Ash.Error,
bread_crumbs: ["Error returned from: MyApp.Resource1.read",
"Exception raised in: MyApp.Resource2.read"],
Resource1 has_many Resource2.
query = Resource2 |> Ash.Query.for_read(:read) |> Ash.Query.filter(created_by_id = ^current_user.id) |> Ash.Query.limit(1)
Resource1
|> Ash.Query.for_read(:read)
|> Ash.Query.load([
resource2: query
|> Ash.read(actor: current_user)
query = Resource2 |> Ash.Query.for_read(:read) |> Ash.Query.filter(created_by_id = ^current_user.id) |> Ash.Query.limit(1)
Resource1
|> Ash.Query.for_read(:read)
|> Ash.Query.load([
resource2: query
|> Ash.read(actor: current_user)
5 Replies
this looks like a bug, can you please share the stacktrace?
Sure
bread_crumbs: ["Error returned from: Taskcalendars.Tasks.DateInstance.read",
"Exception raised in: Taskcalendars.Tasks.TaskInstanceApproval.read"],
query: "#Query<>",
errors: [
%Ash.Error.Unknown.UnknownError{
error: "** (BadMapError) expected a map, got: nil",
field: nil,
value: nil,
splode: Ash.Error,
bread_crumbs: ["Error returned from: Taskcalendars.Tasks.DateInstance.read",
"Exception raised in: Taskcalendars.Tasks.TaskInstanceApproval.read"],
vars: [],
path: [],
stacktrace: #Splode.Stacktrace<>,
class: :unknown
}
]
},
[
{:maps, :merge, [nil, %{}], [error_info: %{module: :erl_stdlib_errors}]},
{Ash.Query, :"-data_layer_query/2-fun-2-", 2,
[file: ~c"lib/ash/query/query.ex", line: 3428]},
{Map, :update!, 3, [file: ~c"lib/map.ex", line: 916]},
{Ash.Query, :data_layer_query, 2,
[file: ~c"lib/ash/query/query.ex", line: 3425]},
{AshSql.Query, :set_context, 4, [file: ~c"lib/query.ex", line: 51]},
{Ash.Query, :data_layer_query, 2,
[file: ~c"lib/ash/query/query.ex", line: 3422]},
{Ash.Actions.Read, :"-do_read/5-fun-2-", 8,
[file: ~c"lib/ash/actions/read/read.ex", line: 631]},
{Ash.Actions.Read, :maybe_in_transaction, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 1364]},
{Ash.Actions.Read, :do_run, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 328]},
{Ash.Actions.Read, :"-run/3-fun-7-", 3,
[file:
bread_crumbs: ["Error returned from: Taskcalendars.Tasks.DateInstance.read",
"Exception raised in: Taskcalendars.Tasks.TaskInstanceApproval.read"],
query: "#Query<>",
errors: [
%Ash.Error.Unknown.UnknownError{
error: "** (BadMapError) expected a map, got: nil",
field: nil,
value: nil,
splode: Ash.Error,
bread_crumbs: ["Error returned from: Taskcalendars.Tasks.DateInstance.read",
"Exception raised in: Taskcalendars.Tasks.TaskInstanceApproval.read"],
vars: [],
path: [],
stacktrace: #Splode.Stacktrace<>,
class: :unknown
}
]
},
[
{:maps, :merge, [nil, %{}], [error_info: %{module: :erl_stdlib_errors}]},
{Ash.Query, :"-data_layer_query/2-fun-2-", 2,
[file: ~c"lib/ash/query/query.ex", line: 3428]},
{Map, :update!, 3, [file: ~c"lib/map.ex", line: 916]},
{Ash.Query, :data_layer_query, 2,
[file: ~c"lib/ash/query/query.ex", line: 3425]},
{AshSql.Query, :set_context, 4, [file: ~c"lib/query.ex", line: 51]},
{Ash.Query, :data_layer_query, 2,
[file: ~c"lib/ash/query/query.ex", line: 3422]},
{Ash.Actions.Read, :"-do_read/5-fun-2-", 8,
[file: ~c"lib/ash/actions/read/read.ex", line: 631]},
{Ash.Actions.Read, :maybe_in_transaction, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 1364]},
{Ash.Actions.Read, :do_run, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 328]},
{Ash.Actions.Read, :"-run/3-fun-7-", 3,
[file:
~c"lib/ash/actions/read/read.ex", line: 89]},
{Ash.Actions.Read, :run, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 88]},
{Ash.Actions.Read.Relationships, :"-do_fetch_related_records/5-fun-5-", 3,
[file: ~c"lib/ash/actions/read/relationships.ex", line: 590]},
{Ash.ProcessHelpers, :"-async/2-fun-2-", 4,
[file: ~c"lib/ash/process_helpers.ex", line: 38]},
{Task.Supervised, :invoke_mfa, 2,
[file: ~c"lib/task/supervised.ex", line: 101]},
{Task.Supervised, :reply, 4, [file: ~c"lib/task/supervised.ex", line: 36]},
{Ash.ProcessHelpers, :async, 2,
[file: ~c"lib/ash/process_helpers.ex", line: 32]},
{Ash.Actions.Read.AsyncLimiter, :async_or_inline, 4,
[file: ~c"lib/ash/actions/read/async_limiter.ex", line: 40]},
{Ash.Actions.Read.Relationships, :fetch_related_records, 5,
[file: ~c"lib/ash/actions/read/relationships.ex", line: 81]},
{Ash.Actions.Read.Relationships, :load, 4,
[file: ~c"lib/ash/actions/read/relationships.ex", line: 26]},
{Ash.Actions.Read, :do_run, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 357]}
]}
TaskcalendarsWeb.TaskLive.DashboardLive.handle_async/3 @ lib/taskcalendars_web/live/task_live/dashboard_live.ex:1711
Phoenix.LiveView.Async.handle_kind/5 @ deps/phoenix_live_view/lib/phoenix_live_view/async.ex:270
Phoenix.LiveView.Channel.handle_info/2 @ deps/phoenix_live_view/lib/phoenix_live_view/channel.ex:277
:gen_server.try_handle_info/3 @ (stdlib 6.2) gen_server.erl:2345
:gen_server.handle_msg/6 @ (stdlib 6.2) gen_server.erl:2433
:proc_lib.init_p_do_apply/3 @ (stdlib 6.2) proc_lib.erl:329
~c"lib/ash/actions/read/read.ex", line: 89]},
{Ash.Actions.Read, :run, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 88]},
{Ash.Actions.Read.Relationships, :"-do_fetch_related_records/5-fun-5-", 3,
[file: ~c"lib/ash/actions/read/relationships.ex", line: 590]},
{Ash.ProcessHelpers, :"-async/2-fun-2-", 4,
[file: ~c"lib/ash/process_helpers.ex", line: 38]},
{Task.Supervised, :invoke_mfa, 2,
[file: ~c"lib/task/supervised.ex", line: 101]},
{Task.Supervised, :reply, 4, [file: ~c"lib/task/supervised.ex", line: 36]},
{Ash.ProcessHelpers, :async, 2,
[file: ~c"lib/ash/process_helpers.ex", line: 32]},
{Ash.Actions.Read.AsyncLimiter, :async_or_inline, 4,
[file: ~c"lib/ash/actions/read/async_limiter.ex", line: 40]},
{Ash.Actions.Read.Relationships, :fetch_related_records, 5,
[file: ~c"lib/ash/actions/read/relationships.ex", line: 81]},
{Ash.Actions.Read.Relationships, :load, 4,
[file: ~c"lib/ash/actions/read/relationships.ex", line: 26]},
{Ash.Actions.Read, :do_run, 3,
[file: ~c"lib/ash/actions/read/read.ex", line: 357]}
]}
TaskcalendarsWeb.TaskLive.DashboardLive.handle_async/3 @ lib/taskcalendars_web/live/task_live/dashboard_live.ex:1711
Phoenix.LiveView.Async.handle_kind/5 @ deps/phoenix_live_view/lib/phoenix_live_view/async.ex:270
Phoenix.LiveView.Channel.handle_info/2 @ deps/phoenix_live_view/lib/phoenix_live_view/channel.ex:277
:gen_server.try_handle_info/3 @ (stdlib 6.2) gen_server.erl:2345
:gen_server.handle_msg/6 @ (stdlib 6.2) gen_server.erl:2433
:proc_lib.init_p_do_apply/3 @ (stdlib 6.2) proc_lib.erl:329
Can you try
main
?The issue is gone. Thank you!!
release will go out next week
at the latest