** (RuntimeError) found error while checking types for Jason.Decoder.float_decode_function/1: in Docker

Hi!

I’m running a umbrella project in a docker container. In the container in a submodule I’m running mix deps.get I get an error

==> jason
Compiling 10 files (.ex)
** (EXIT from #PID<0.95.0>) an exception was raised:
    ** (RuntimeError) found error while checking types for Jason.Decoder.float_decode_function/1:

** (ArgumentError) could not call Module.put_attribute/3 because the module Jason.Decoder is already compiled
The exception happened while checking this code:

defp float_decode_function(%{floats: :decimals}) do
  fn string, token, skip ->
    try do
      Decimal.new(string)
    rescue
      _ in [Decimal.Error] -> token_error(token, skip)
    end
  end
end

Please report this bug at: https://github.com/elixir-lang/elixir/issues

        (elixir 1.17.0) lib/module.ex:2365: Module.assert_not_readonly!/2
        (elixir 1.17.0) lib/module.ex:2046: Module.__put_attribute__/5
        (decimal 2.3.0) Decimal.Error.__info__/1
        (elixir 1.17.0) lib/module/types/of.ex:182: Module.Types.Of.struct/6
        (elixir 1.17.0) lib/module/types/helpers.ex:128: Module.Types.Helpers.do_map_reduce_ok/3
        (elixir 1.17.0) lib/module/types/expr.ex:379: Module.Types.Expr.of_rescue/8
        (elixir 1.17.0) lib/module/types/helpers.ex:108: Module.Types.Helpers.do_reduce_ok/3
        (elixir 1.17.0) lib/module/types/expr.ex:231: Module.Types.Expr.of_expr/3

Any ideas how to approach this?

What is the version of elixir/erlang used?

So far tracked some corners:

  1. On a OS X, with M2 - had to define the platform when building the image and running the container. Shouldn’t be causing more troubles.

  2. Elixir and Erlang versions. elixir -v in the container @D4no0
    Erlang/OTP 27 [erts-15.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns] Elixir 1.17.0 (compiled with Erlang/OTP 27)

Updated to run with elixir 1.18.1
with nuked _build, deps and mix.lock running mix deps.get in the submodule in the Docker container first get the jason error

Error while loading project :jason at /my_umbrella_project/my_submodule/deps/jason
** (ArgumentError) could not call Module.put_attribute/3 because the module Nerves.MixProject is already compiled
    (elixir 1.18.1) lib/module.ex:2398: Module.assert_not_readonly!/2
    (elixir 1.18.1) lib/module.ex:2079: Module.__put_attribute__/5     /my_umbrella_project/my_submodule/deps/jason/mix.exs:2: (module)

But running mix deps.get a second time it builds perfectly fine.