ElixirLS and exception was raised:** (ArgumentError)

I am getting below error in my code and my version and deps as below, any help appreciated and thanks.

an exception was raised:
** (ArgumentError) argument error
(stdlib) eval_bits.erl:101: :eval_bits.eval_exp_field1/6
(stdlib) eval_bits.erl:92: :eval_bits.eval_field/3
(stdlib) eval_bits.erl:68: :eval_bits.expr_grp/4
(stdlib) erl_eval.erl:484: :erl_eval.expr/5
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
(stdlib) erl_eval.erl:232: :erl_eval.expr/5
(elixir) src/elixir.erl:265: :elixir.eval_forms/4

elixir: “~&>; 1.7.2”,

Type mix help deps for examples and options.

defp deps do
[
{:phoenix, “~> 1.3.2”},
{:phoenix_pubsub, “~> 1.0”},
{:phoenix_ecto, “~> 3.2”},
{:postgrex, “>= 0.0.0”},
{:gettext, “~> 0.11”},
{:cowboy, “~> 1.0”},
{:authex, “~> 0.2.1”},
{:canary, “~> 1.1.1”},
{:canada, “~> 1.0.1”},
{:sage, “~> 0.4.0”},
{:comeonin, “~> 4.0”},
{:bcrypt_elixir, “~> 1.0”},
{:nimble_csv, “~> 0.3”},
{:geo_postgis, “~> 2.0”},
{:ex_aws, “~> 1.0”},
{:timex, “~> 3.3”},
{:swoosh, “~> 0.13”},
{:gen_smtp, “~> 0.12.0”},
{:httpoison, “~> 1.0”, override: true},
{:absinthe, “~> 1.4.0”},
{:absinthe_plug, “~> 1.4.0”},
{:absinthe_ecto, “~> 0.1.3”},
{:plug_id_column, “~> 0.1.3”},
{:kronky, “~> 0.5.0”},
{:credo, “~> 0.9.0”, only: [:dev, :test], runtime: false},
{:distillery, “~> 1.0”, runtime: false},
{:edeliver, “~> 1.4.5”},
{:ex_doc, “~> 0.19.0”, only: [:dev], runtime: false},
{:dialyxir, “~> 0.5”, only: [:dev], runtime: false}
]
end

I am also receiving same error while releasing the app.

$ MIX_ENV=prod mix release --env=test
** (ArgumentError) argument error
(stdlib) eval_bits.erl:101: :eval_bits.eval_exp_field1/6
(stdlib) eval_bits.erl:92: :eval_bits.eval_field/3
(stdlib) eval_bits.erl:68: :eval_bits.expr_grp/4
(stdlib) erl_eval.erl:484: :erl_eval.expr/5
(stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
(stdlib) erl_eval.erl:240: :erl_eval.expr/5
(stdlib) erl_eval.erl:232: :erl_eval.expr/5

Have you tried the elixir-lsp fork? There are some unmerged fixes in the official repo at the moment.

Is there a reason those changes are not merged upstream yet? Looks like Elixir LS (the main repo) hasn’t been active in months but I’m not sure why :confused:

I think the maintainer has just been very busy last few months. Although recently things are not moving much, up to 4 months ago there were changes merged in.

1 Like

Took me a bit of digging to find the answer - but it seems the error happens when you use <> to join nil to a string.

(Assuming the env variable is nil)

config :api_web, :myapp,
       app_id: System.get_env("OIDC_RESOURCE"),
       app_url: System.get_env("OIDC_BASEURL") <> "/" <> System.get_env("OIDC_REALM")

There was an issue open a couple of months ago. Seems like the erlang/elixir teams are going to improve the error message in a future release.

3 Likes