Troubles with many_to_many (Postgrex.Error) ERROR XX000 (internal_error)

Hello,

I’m trying to make a many_to_many association.
Here is my code:

  schema "organizations" do
     field(:actable_id, :integer)
     field(:actable_type, :string)
     field(:name, :string)
     has_many(:user_memberships, Dsrvex.Rshift.UserMembership)
     many_to_many :users, Dsrvex.Rshift.User, join_through: "user_memberships"
  end

  schema "user_memberships" do
     field :active, :boolean, default: false
     field :email, :string
     field :share_product_feedback, :boolean, default: false
     field :share_product_usage, :boolean, default: false
     field :user_type, :string

      belongs_to(:organization, Dsrvex.Rshift.Organization)
      belongs_to(:user, Dsrvex.Rshift.User)
  end

  schema "users" do
      field :email, :string
      field :user_type, :string
      has_many(:user_memberships, Dsrvex.Rshift.UserMembership)
      many_to_many :organizations, Dsrvex.Rshift.Organization, join_through: "user_memberships"
  end

And this is how I’m using it:

  iex(1)> Dsrvex.Rshift.User.get(1) |> Dsrvex.RshiftRepo.preload(:organizations)
  ** (UndefinedFunctionError) function Dsrvex.Rshift.User.get/1 is undefined or private
    (dsrvex) Dsrvex.Rshift.User.get(1)

  iex(1)> Dsrvex.RshiftRepo.get(Dsrvex.Rshift.User, 1) |> Dsrvex.RshiftRepo.preload(:organizations)
  [debug] QUERY OK source="users" db=318.0ms
  SELECT u0."id", u0."email", u0."user_type" FROM "users" AS u0 WHERE (u0."id" = $1) [1]
  [debug] QUERY ERROR source="organizations" db=7972.7ms queue=0.8ms
  SELECT o0."id", o0."actable_id", o0."actable_type", o0."name", u1."id" FROM "organizations" AS o0     INNER JOIN "users" AS u1 ON u1."id" = ANY($1) INNER JOIN "user_memberships" AS u2 ON   u2."user_id" = u1."id" WHERE (u2."organization_id" = o0."id") ORDER BY u1."id" [[1]]
  ** (Postgrex.Error) ERROR XX000 (internal_error): Assert


   -----------------------------------------------
   error:  Assert
   code:      1000
   context:   IsA((Node*)arrayExpr->args->tail->data.ptr_value, Const) -
   query:     14485
   location:  xen_execute.cpp:6423
   process:   padbmaster [pid=12327]
   -----------------------------------------------

(ecto) lib/ecto/adapters/sql.ex:431: Ecto.Adapters.SQL.execute_and_cache/7
(ecto) lib/ecto/repo/queryable.ex:133: Ecto.Repo.Queryable.execute/5
(ecto) lib/ecto/repo/queryable.ex:37: Ecto.Repo.Queryable.all/4
(elixir) lib/enum.ex:1314: Enum."-map/2-lists^map/1-0-"/2

If I do the same SQL query via psql, it works fine:

# SELECT o0."id", o0."actable_id", o0."actable_type", o0."name", u1."id" FROM "organizations" AS o0     INNER JOIN "users" AS u1 ON u1."id" = ANY(array[1]) INNER JOIN "user_memberships" AS u2 ON   u2."user_id" = u1."id" WHERE (u2."organization_id" = o0."id") ORDER BY u1."id";

        id   | actable_id |     actable_type     |                   name                    | id
  --------+------------+----------------------+-------------------------------------------+----
 140455 |       1875 | qweqwe       | Starr Detroit Academy                     |  1
 157863 |         23 | dsfsdfsdf | Michigan                                  |  1