Error Spawning Process on Another Node

Hi,

I’ve created a simple cluster by opening 2 IEX sessions on two different machines, and I can see the the nodes are clustered:

iex(dev@127.0.0.1)11> Node.list [:this, :visible]
[:"suv@127.0.0.1", :"dev@127.0.0.1"]

When I try running a simple process on the other node, I get this error:

 iex(dev@127.0.0.1)7> caller = self()
 #PID<0.115.0>
 iex(dev@127.0.0.1)8> Node.spawn(:"suv@127.0.0.1", fn -> send(caller, {:response, 1+2}) end)
 #PID<14963.130.0>
 
 11:43:45.064 [error] Process #PID<14963.130.0> on node :"suv@127.0.0.1" raised an exception
 ** (BadFunctionError) function #Function<43.125776118/0 in :erl_eval.expr/6> is invalid, likely because it points to an old version of the code
     :erlang.apply/2
 iex(dev@127.0.0.1)9> nil

The error implies :erl_eval.expr/6 is missing, so my first guess was differing versions of Elixir and/or Erlang/OTP on each node, but both have elixir 1.15 and OPT 26 as far as I can tell:

Node A:

iex(dev@127.0.0.1)6> System.build_info 
%{
   version: "1.15.5",
   date: "2023-08-28T11:58:30Z",
   otp_release: "26",
   build: "1.15.5 (compiled with Erlang/OTP 26)",
   revision: "9fd97c4" 
}

Node B:

 iex(suv@127.0.0.1)15> System.build_info
 %{
   version: "1.15.8",
   date: "2024-11-12T06:54:38Z",
   otp_release: "26",
   build: "1.15.8 (compiled with Erlang/OTP 26)",
   revision: ""
 }

When I use tab completion on :erl_eval.expr in IEX there is no :erl_eval.expr/6. Any idea what I might be doing wrong?