What warning "does not have an input type defined" means for embedded resources?

I have this resource in my code:

defmodule Core.Marketplace.Payments.Product.Types.Test do @moduledoc false use Ash.Resource, data_layer: :embedded, extensions: [AshGraphql.Resource] attributes do timestamps(public?: true) end graphql do type :payments_product_test end end 

And I use it in this type:

defmodule Core.Marketplace.Payments.Product.Types.Metadata do @moduledoc false alias Core.Marketplace.Payments.Product.Types use AshGraphql.Type use Ash.Type.NewType, subtype_of: :union, constraints: [ types: [ ..., test: [type: Types.Test, tag: :type, tag_value: :test] ] ] @impl true def graphql_type(_), do: :payments_product_metadata end 

When I compile this, I get this warning:

warning: Embedded type Core.Marketplace.Payments.Product.Types.Test does not have an input type defined, but is accepted as input in at least one location. (ash_graphql 1.8.3) lib/resource/resource.ex:4835: AshGraphql.Resource.do_field_type/5 (ash_graphql 1.8.3) lib/resource/resource.ex:3715: anonymous fn/4 in AshGraphql.Resource.union_type_definitions/6 (elixir 1.18.4) lib/enum.ex:1714: Enum."-map/2-lists^map/1-1-"/2 (elixir 1.18.4) lib/enum.ex:1714: Enum."-map/2-lists^map/1-1-"/2 (ash_graphql 1.8.3) lib/resource/resource.ex:3707: AshGraphql.Resource.union_type_definitions/6 (elixir 1.18.4) lib/enum.ex:4442: Enum.flat_map_list/2 

What does this means?

Its telling you to add an input type

 @impl true def graphql_type(_), do: :payments_product_metadata def graphql_type(_), do: :payments_product_metadata_input 

But is not the Metadata type that doesn’t have an input, is the Test resource.

I don’t see a way to set the input type in the AshGraphql.Resource DSL.

Also, from the code above, I guess you meant:

 @impl true def graphql_type(_), do: :payments_product_metadata def graphql_input_type(_), do: :payments_product_metadata_input 

Oh, right :thinking: interesting. Can you create a reproduction and open an issue? It may be a spurious warning.