Build log
host
shield 0.7.3 · fail · run shield-0.7.3-1791100848627
1183 of 1183 lines
1Resolving Hex dependencies...2Resolution completed in 0.31s3Unchanged:4 authable 0.8.05 bamboo 0.8.06 certifi 2.15.07 circular_buffer 1.1.08 comeonin 3.2.09 connection 1.0.410 cors_plug 1.1.411 cowboy 1.0.4 VULNERABLE!12 GHSA-w4f7-4cxr-rv3c (MEDIUM)13 aka: CVE-2026-43966, EEF-CVE-2026-4396614 cowboy and gun affected by an HTTP Request/Response Splitting vulnerability15 https://osv.dev/vulnerability/GHSA-w4f7-4cxr-rv3c16 cowlib 1.0.2 VULNERABLE!17 EEF-CVE-2026-7790 (HIGH)18 aka: CVE-2026-7790, GHSA-32p9-57cr-4x6519 Unbounded chunk-size hex digits in cowlib cause quadratic CPU and memory DoS20 https://osv.dev/vulnerability/EEF-CVE-2026-77902122 EEF-CVE-2026-43970 (HIGH)23 aka: CVE-2026-43970, GHSA-84f2-rp86-235p24 Decompression Bomb in cow_spdy:inflate/2 Allows Memory Exhaustion via Crafted SPDY Frame25 https://osv.dev/vulnerability/EEF-CVE-2026-4397026 db_connection 1.1.327 decimal 1.9.0 VULNERABLE!28 EEF-CVE-2026-32686 (MEDIUM)29 aka: CVE-2026-32686, GHSA-rhv4-8758-jx7v30 Unbounded exponent in decimal enables unauthenticated DoS31 https://osv.dev/vulnerability/EEF-CVE-2026-3268632 ecto 2.2.1233 elixir_make 0.10.034 expo 1.1.135 gettext 0.26.236 hackney 1.25.0 VULNERABLE!37 EEF-CVE-2026-47071 (HIGH)38 aka: CVE-2026-47071, GHSA-gp9c-pm5m-5cxr39 SOCKS5 TLS upgrade ignores caller timeout in hackney40 https://osv.dev/vulnerability/EEF-CVE-2026-470714142 EEF-CVE-2026-47076 (MEDIUM)43 aka: CVE-2026-47076, GHSA-pj7v-xfvx-wmjq44 SSRF allowlist bypass via percent-encoded host in hackney45 https://osv.dev/vulnerability/EEF-CVE-2026-470764647 EEF-CVE-2026-47069 (LOW)48 aka: CVE-2026-47069, GHSA-mp55-p8c9-rfw249 CRLF injection in cookie domain/path options in hackney50 https://osv.dev/vulnerability/EEF-CVE-2026-470695152 EEF-CVE-2026-47075 (MEDIUM)53 aka: CVE-2026-47075, GHSA-j9wq-vxxc-94wf54 CR/LF injection in query parameter in hackney55 https://osv.dev/vulnerability/EEF-CVE-2026-4707556 idna 6.1.157 interactive_cmd 0.1.458 metrics 1.0.159 mime 1.6.060 mimerl 1.5.061 nerves 2.0.0-pre.262 nerves_discovery 0.1.563 nerves_logging 0.2.464 nerves_runtime 0.13.1365 nerves_system_bbb 2.30.266 nerves_system_br 1.34.467 nerves_system_mangopi_mq_pro 0.17.268 nerves_system_qemu_aarch64 0.4.269 nerves_system_rpi0 2.1.270 nerves_system_rpi4 2.1.271 nerves_system_rpi5 2.1.272 nerves_system_trellis 0.5.073 nerves_system_x86_64 1.34.274 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.175 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.176 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.177 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.178 nerves_toolchain_x86_64_nerves_linux_musl 15.3.179 nerves_uevent 0.1.780 parse_trans 3.4.181 phoenix 1.2.5 VULNERABLE!82 GHSA-p8f7-22gq-m7j9 (HIGH)83 aka: CVE-2022-4297584 Phoenix before 1.6.14 mishandles check_origin wildcarding85 https://osv.dev/vulnerability/GHSA-p8f7-22gq-m7j98687 EEF-CVE-2026-56812 (MEDIUM)88 aka: CVE-2026-56812, GHSA-63mc-hw7g-86rr89 Phoenix JavaScript presence client crashes on presence keys colliding with Object.prototype members in Presence.syncState/syncDiff90 https://osv.dev/vulnerability/EEF-CVE-2026-568129192 EEF-CVE-2026-56811 (HIGH)93 aka: CVE-2026-56811, GHSA-6983-jfq8-485w94 Phoenix transports do not limit channel joins per connection, enabling process-exhaustion denial of service95 https://osv.dev/vulnerability/EEF-CVE-2026-5681196 phoenix_ecto 3.2.397 phoenix_pubsub 1.1.298 plug 1.3.6 VULNERABLE!99 EEF-CVE-2026-56813 (LOW)100 aka: CVE-2026-56813, GHSA-wpmj-jh88-rpgm101 Cookie attribute injection in Plug.Conn.Cookies.encode/2102 https://osv.dev/vulnerability/EEF-CVE-2026-56813103 poison 2.2.0104 poolboy 1.5.2105 postgrex 0.13.5106 property_table 0.3.4107 ranch 1.8.1108 ring_logger 0.11.7109 secure_random 0.5.1110 shield 0.7.3111 shield_notifier 0.2.1112 ssl_verify_fun 1.1.7113 tablet 0.3.3114 toolshed 0.5.0115 uboot_env 1.0.2116 unicode_util_compat 0.7.1117Found packages with security advisories, see above for details118All dependencies have been fetched119 warning: String.strip/1 is deprecated. Use String.trim/1 instead120 │121 4 │ @version File.read!("VERSION") |> String.strip122 │ ~123 │124 └─ /work/proj/deps/poison/mix.exs:4:44: Poison.Mixfile (module)125126 warning: found quoted keyword "coveralls" but the quotes are not required. Note that keywords are always atoms, even when quoted. Similar to atoms, keywords made exclusively of ASCII letters, numbers, and underscores and not beginning with a number do not require quotes127 │128 14 │ preferred_cli_env: ["coveralls": :test, "coveralls.circle": :test],129 │ ~130 │131 └─ /work/proj/deps/bamboo/mix.exs:14:26132133===> Analyzing applications...134===> Compiling ranch135 ┌─ src/ranch_conns_sup.erl:136 │137 80 │ catch erlang:send(SupPid, {?MODULE, active_connections, self(), Tag},138 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.139Compile directive 'nowarn_deprecated_catch' can be used to suppress140warnings in selected modules.141142143===> Analyzing applications...144===> Compiling cowboy145 ┌─ src/cowboy_handler.erl:146 │147 87 │ Stacktrace = erlang:get_stacktrace(),148 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace149150 ┌─ src/cowboy_handler.erl:151 │152 116 │ Stacktrace = erlang:get_stacktrace(),153 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace154155 ┌─ src/cowboy_handler.erl:156 │157 235 │ Stacktrace = erlang:get_stacktrace(),158 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace159160 ┌─ src/cowboy_handler.erl:161 │162 290 │ {stacktrace, erlang:get_stacktrace()},163 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace164165166 ┌─ src/cowboy_rest.erl:167 │168 69 │ Stacktrace = erlang:get_stacktrace(),169 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace170171 ┌─ src/cowboy_rest.erl:172 │173 1006 │ Stacktrace = erlang:get_stacktrace(),174 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace175176177 ┌─ src/cowboy_websocket.erl:178 │179 147 │ Stacktrace = erlang:get_stacktrace(),180 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace181182 ┌─ src/cowboy_websocket.erl:183 │184 645 │ {stacktrace, erlang:get_stacktrace()},185 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace186187 ┌─ src/cowboy_websocket.erl:188 │189 755 │ {stacktrace, erlang:get_stacktrace()},190 │ ╰── Warning: erlang:get_stacktrace/0 is removed; use the new try/catch syntax for retrieving the stack backtrace191192193warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"194 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2195 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1196 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5197 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2198 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4199 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2200201==> plug202Compiling 44 files (.ex)203warning: cannot infer signatures from :cowboy because it is not loaded204205warning: cannot infer signatures from :ranch because it is not loaded206207warning: Kernel.to_char_list/1 is deprecated, use Kernel.to_charlist/1 instead208 lib/plug/adapters/cowboy.ex:220: Plug.Adapters.Cowboy.put_ssl_file/3209210warning: Kernel.to_char_list/1 is deprecated, use Kernel.to_charlist/1 instead211 lib/plug/adapters/cowboy.ex:238: Plug.Adapters.Cowboy.to_char_list/2212213 warning: using single-quoted strings to represent charlists is deprecated.214 Use ~c"" if you indeed want a charlist or use "" instead.215 You may run "mix format --migrate" to change all single-quoted216 strings to use the ~c sigil and fix this warning.217 │218 230 │ generated? = :erlang.system_info(:otp_release) >= '19'219 │ ~220 │221 └─ lib/plug/builder.ex:230:55222223 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead224 │225 421 │ when not state in @unsent do226 │ ~227 │228 └─ lib/plug/conn.ex:421:22229230 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead231 │232 445 │ when not state in @unsent do233 │ ~234 │235 └─ lib/plug/conn.ex:445:22236237 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead238 │239 497 │ when not state in @unsent do240 │ ~241 │242 └─ lib/plug/conn.ex:497:22243244 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead245 │246 883 │ def put_session(%Conn{state: state}, _key, _value) when not state in @unsent,247 │ ~248 │249 └─ lib/plug/conn.ex:883:69250251 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead252 │253 907 │ def delete_session(%Conn{state: state}, _key) when not state in @unsent,254 │ ~255 │256 └─ lib/plug/conn.ex:907:64257258 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead259 │260 939 │ def configure_session(%Conn{state: state}, _opts) when not state in @unsent,261 │ ~262 │263 └─ lib/plug/conn.ex:939:68264265 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead266 │267 961 │ when not state in @unsent do268 │ ~269 │270 └─ lib/plug/conn.ex:961:22271272 warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead273 │274 6 │ custom_statuses = Application.get_env(:plug, :statuses, %{})275 │ ~276 │277 └─ lib/plug/conn/status.ex:6:33: Plug.Conn.Status (module)278279 warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead280 │281 65 │ mask(left, right, <<acc::binary, x ^^^ y>>)282 │ ~283 │284 └─ lib/plug/crypto.ex:65:40285286 warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead287 │288 87 │ masked_compare(left, right, mask, acc ||| (x ^^^ (y ^^^ z)))289 │ ~290 │291 └─ lib/plug/crypto.ex:87:50292293 warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead294 │295 87 │ masked_compare(left, right, mask, acc ||| (x ^^^ (y ^^^ z)))296 │ ~297 │298 └─ lib/plug/crypto.ex:87:57299300 warning: ^^^ is deprecated. It is typically used as xor but it has the wrong precedence, use Bitwise.bxor/2 instead301 │302 108 │ secure_compare(left, right, acc ||| (x ^^^ y))303 │ ~304 │305 └─ lib/plug/crypto.ex:108:44306307 warning: use Bitwise is deprecated. import Bitwise instead308 │309 6 │ use Bitwise310 │ ~~~~~~~~~~~311 │312 └─ lib/plug/crypto.ex:6: Plug.Crypto (module)313314 warning: use Bitwise is deprecated. import Bitwise instead315 │316 13 │ use Bitwise317 │ ~~~~~~~~~~~318 │319 └─ lib/plug/crypto/key_generator.ex:13: Plug.Crypto.KeyGenerator (module)320321 warning: the variable "max_length" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator322 │323 59 │ <<bin::binary-size(max_length), _::binary>> = key324 │ ~325 │326 └─ lib/plug/crypto/key_generator.ex:59:24: Plug.Crypto.KeyGenerator.generate/7327328 warning: unused require Bitwise329 │330 64 │ require Bitwise331 │ ~332 │333 └─ lib/plug/csrf_protection.ex:64:3334335 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead336 │337 4 │ if Application.get_env(:plug, :mimes) do338 │ ~339 │340 └─ lib/plug/mime.ex:4:18: Plug.MIME (module)341342 warning: unused require Logger343 │344 32 │ require Logger345 │ ~346 │347 └─ lib/plug/request_id.ex:32:3348349 warning: calling super for GenServer callback handle_info/2 is deprecated350 │351 164 │ super(msg, state)352 │ ~353 │354 └─ lib/plug/upload.ex:164:5: Plug.Upload.handle_info/2355356 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead357 │358 39 │ reraise e, System.stacktrace359 │ ~360 │361 └─ lib/plug/parsers/multipart.ex:39:27: Plug.Parsers.MULTIPART.parse/5362 └─ lib/plug/parsers/multipart.ex:41:73: Plug.Parsers.MULTIPART.parse/5363364 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead365 │366 12 │ worker(Plug.Upload, [])367 │ ~368 │369 └─ lib/plug/supervisor.ex:12:7: Plug.Supervisor.init/1370371 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead372 │373 16 │ supervise(children, strategy: :one_for_one)374 │ ~375 │376 └─ lib/plug/supervisor.ex:16:5: Plug.Supervisor.init/1377378 warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)379 │380 210 │ if Code.ensure_compiled?(module) and function_exported?(module, :init, 1) do381 │ ~382 │383 └─ lib/plug/parsers.ex:210:15: Plug.Parsers.convert_parsers/2384385 warning: MIME.valid?/1 is deprecated. Use MIME.extensions(type) != [] instead386 │387 28 │ MIME.valid?(type)388 │ ~389 │390 └─ lib/plug/mime.ex:28:10: Plug.MIME.valid?/1391392 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead393 │394 82 │ __catch__(conn, kind, reason, reason, System.stacktrace, handle_errors)395 │ ~396 │397 └─ lib/plug/error_handler.ex:82:50: Plug.ErrorHandler.__catch__/4398399 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead400 │401 139 │ __catch__(conn, kind, reason, System.stacktrace, opts)402 │ ~403 │404 └─ lib/plug/debugger.ex:139:42: Plug.Debugger.__catch__/4405406 warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead407 │408 41 │ signature = :crypto.hmac(:sha, key, plain_text)409 │ ~410 │411 └─ lib/plug/crypto/message_verifier.ex:41:26: Plug.Crypto.MessageVerifier.hmac_sha1_sign/2412 └─ lib/plug/crypto/message_verifier.ex:49:29: Plug.Crypto.MessageVerifier.hmac_sha1_verify/2413 └─ lib/plug/crypto/message_verifier.ex:71:26: Plug.Crypto.MessageVerifier.hmac_sha2_sign/3414 └─ lib/plug/crypto/message_verifier.ex:80:29: Plug.Crypto.MessageVerifier.hmac_sha2_verify/2415416 warning: String.rstrip/1 is deprecated. Use String.trim_trailing/1 instead417 │418 635 │ <pre class="code code-block"><%= for {index, line, highlight} <- snippet do %><span class="line <%= if highlight, do: "-highlight" %>"><span class="ln"><%= h index %></span><span class="code"><%= h String.rstrip(line) %></span></span>419 │ ~420 │421 └─ lib/plug/templates/debugger.html.eex:635:206: Plug.Debugger.template_html/1422423 warning: :crypto.block_encrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_init + crypto:crypto_update + crypto:crypto_final instead424 │425 57 │ {cipher_text, cipher_tag} = :crypto.block_encrypt(:aes_gcm, key, iv, {aad, plain_text})426 │ ~427 │428 └─ lib/plug/crypto/message_encryptor.ex:57:41: Plug.Crypto.MessageEncryptor.aes128_gcm_encrypt/3429 └─ lib/plug/crypto/message_encryptor.ex:104:41: Plug.Crypto.MessageEncryptor.aes_gcm_key_wrap/3430 └─ lib/plug/crypto/message_encryptor.ex:314:13: Plug.Crypto.MessageEncryptor.encrypt_legacy/4431 └─ lib/plug/crypto/message_encryptor.ex:332:27: Plug.Crypto.MessageEncryptor.aes256_cbc_hmac_sha1_encrypt/3432433 warning: :crypto.block_decrypt/4 is undefined or private, use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_init + crypto:crypto_update + crypto:crypto_final instead434 │435 79 │ :crypto.block_decrypt(:aes_gcm, key, iv, {aad, cipher_text, cipher_tag})436 │ ~437 │438 └─ lib/plug/crypto/message_encryptor.ex:79:21: Plug.Crypto.MessageEncryptor.aes128_gcm_decrypt/3439 └─ lib/plug/crypto/message_encryptor.ex:120:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3440 └─ lib/plug/crypto/message_encryptor.ex:122:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3441 └─ lib/plug/crypto/message_encryptor.ex:124:17: Plug.Crypto.MessageEncryptor.aes_gcm_key_unwrap/3442 └─ lib/plug/crypto/message_encryptor.ex:321:13: Plug.Crypto.MessageEncryptor.decrypt_legacy/4443 └─ lib/plug/crypto/message_encryptor.ex:349:17: Plug.Crypto.MessageEncryptor.aes256_cbc_hmac_sha1_decrypt/3444445 warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead446 │447 275 │ cipher_tag = Base.url_encode64(:crypto.hmac(:sha, sign_secret, cipher_text))448 │ ~449 │450 └─ lib/plug/crypto/message_encryptor.ex:275:44: Plug.Crypto.MessageEncryptor.encode_legacy_token/3451 └─ lib/plug/crypto/message_encryptor.ex:291:44: Plug.Crypto.MessageEncryptor.decode_legacy_token/2452453 warning: :crypto.hmac/3 is undefined or private, use crypto:mac/4 instead454 │455 78 │ &:crypto.hmac(digest, secret, &1)456 │ ~457 │458 └─ lib/plug/crypto/key_generator.ex:78:14: Plug.Crypto.KeyGenerator.mac_fun/2459460 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead461 │462 21 │ stack = System.stacktrace463 │ ~464 │465 └─ lib/plug/conn/wrapper_error.ex:21:22: Plug.Conn.WrapperError.reraise/3466 └─ lib/plug/conn/wrapper_error.ex:26:40: Plug.Conn.WrapperError.reraise/3467468 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead469 │470 21 │ stack = System.stacktrace()471 │ ~472 │473 └─ lib/plug/adapters/cowboy/handler.ex:21:24: Plug.Adapters.Cowboy.Handler.upgrade/4474 └─ lib/plug/adapters/cowboy/handler.ex:26:24: Plug.Adapters.Cowboy.Handler.upgrade/4475 └─ lib/plug/adapters/cowboy/handler.ex:30:24: Plug.Adapters.Cowboy.Handler.upgrade/4476477 warning: Atom.to_char_list/1 is deprecated. Use Atom.to_charlist/1 instead478 │479 186 │ case Atom.to_char_list(plug) do480 │ ~481 │482 └─ lib/plug/builder.ex:186:15: Plug.Builder.init_plug/1483484 warning: a struct for Plug.Conn is expected on struct update:485486 %Plug.Conn{487 conn488 | adapter: {Plug.Adapters.Test.Conn, state},489 host: uri.host || conn.host || "www.example.com",490 method: method,491 owner: owner,492 path_info: split_path(uri.path),493 port: uri.port || 80,494 peer: {{127, 0, 0, 1}, 111_317},495 remote_ip: {127, 0, 0, 1},496 req_headers: req_headers,497 request_path: uri.path,498 query_string: query,499 params: params || %Plug.Conn.Unfetched{aspect: :params},500 scheme: String.to_atom(String.downcase(uri.scheme || "http"))501 }502503 but got type:504505 dynamic(%{..., req_headers: term()})506507 where "conn" was given the type:508509 # type: dynamic(%{..., req_headers: term()})510 # from: lib/plug/adapters/test/conn.ex:15:35511 body_or_params(body_or_params, query, conn.req_headers)512513 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"514515 type warning found at:516 │517 19 │ %Plug.Conn{conn |518 │ ~519 │520 └─ lib/plug/adapters/test/conn.ex:19:5: Plug.Adapters.Test.Conn.conn/4521522 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead523 │524 43 │ Enum.partition(cowboy_options, &is_tuple(&1) and tuple_size(&1) == 2)525 │ ~526 │527 └─ lib/plug/adapters/cowboy.ex:43:12: Plug.Adapters.Cowboy.args/4528529Generated plug app530warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"531 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2532 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1533 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5534 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2535 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4536 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2537538==> phoenix539Compiling 60 files (.ex)540 warning: the variable "prefix" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator541 │542 175 │ <<attr::size(prefix)-binary, ":unique">> -> attr543 │ ~544 │545 └─ lib/mix/phoenix.ex:175:20: Mix.Phoenix.drop_unique/1546547 warning: function init/1 required by behaviour GenServer is not implemented (in module Phoenix.CodeReloader.Proxy).548549 We will inject a default implementation for now:550551 def init(init_arg) do552 {:ok, init_arg}553 end554555 You can copy the implementation above or define your own that converts the arguments given to GenServer.start_link/3 to the server state.556557 │558 3 │ defmodule Phoenix.CodeReloader.Proxy do559 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~560 │561 └─ lib/phoenix/code_reloader/proxy.ex:3: Phoenix.CodeReloader.Proxy (module)562563 warning: unused require Logger564 │565 6 │ require Logger566 │ ~567 │568 └─ lib/phoenix/code_reloader/server.ex:6:3569570 warning: unused require Logger571 │572 6 │ require Logger573 │ ~574 │575 └─ lib/phoenix/endpoint/server.ex:6:3576577 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead578 │579 78 │ defp do_underscore(<<h, t :: binary>>, prev) when h in ?A..?Z and not prev in ?A..?Z do580 │ ~581 │582 └─ lib/phoenix/naming.ex:78:78583584 warning: the variable "prefix_size" is accessed inside size(...) of a bitstring but it was defined outside of the match. You must precede it with the pin operator585 │586 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix587 │ ~588 │589 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2590591 warning: using single-quoted strings to represent charlists is deprecated.592 Use ~c"" if you indeed want a charlist or use "" instead.593 You may run "mix format --migrate" to change all single-quoted594 strings to use the ~c sigil and fix this warning.595 │596 272 │ @anno (if :erlang.system_info(:otp_release) >= '19' do597 │ ~598 │599 └─ lib/phoenix/router.ex:272:50600601 warning: redefining @doc attribute previously set at line 515.602603 Please remove the duplicate docs. If instead you want to override a previously defined @doc, attach the @doc attribute to a function head (the function signature not followed by any do-block). For example:604605 @doc """606 new docs607 """608 def resources(...)609610 │611 522 │ @doc """612 │ ~~~~~~~~613 │614 └─ lib/phoenix/router.ex:522: Phoenix.Router.resources/3615616 warning: using single-quoted strings to represent charlists is deprecated.617 Use ~c"" if you indeed want a charlist or use "" instead.618 You may run "mix format --migrate" to change all single-quoted619 strings to use the ~c sigil and fix this warning.620 │621 183 │ @anno (if :erlang.system_info(:otp_release) >= '19' do622 │ ~623 │624 └─ lib/phoenix/router/helpers.ex:183:50625626 warning: "not expr1 in expr2" is deprecated, use "expr1 not in expr2" instead627 │628 169 │ not (k = to_string(k)) in reserved,629 │ ~630 │631 └─ lib/phoenix/router/helpers.ex:169:39632633 warning: duplicate key :route found in struct634 │635 24 │ defstruct [:path, :actions, :param, :route, :controller, :route, :member, :collection, :singleton]636 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~637 │638 └─ lib/phoenix/router/resource.ex:24: Phoenix.Router.Resource (module)639640 warning: unused require Logger641 │642 5 │ require Logger643 │ ~644 │645 └─ lib/phoenix/controller.ex:5:3646647 warning: invalid type annotation. The left side of :: must be a variable, got: {:ok, pid()} | {:error, reason :: term()}. Note "left | right :: ann" is the same as "(left | right) :: ann". To solve this, use parentheses around the union operands: "left | (right :: ann)"648 │649 109 │ @callback start_link(Keyword.t) :: {:ok, pid()} | {:error, reason :: term()} :: :ignore650 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~651 │652 └─ lib/phoenix/presence.ex:109: Phoenix.Presence (module)653654 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead655 │656 268 │ Logger.warn fn -> "Ignoring unmatched topic \"#{msg.topic}\" in #{inspect(socket.handler)}" end657 │ ~658 │659 └─ lib/phoenix/socket/transport.ex:268:12: Phoenix.Socket.Transport.reply_ignore/2660661 warning: using single-quoted strings to represent charlists is deprecated.662 Use ~c"" if you indeed want a charlist or use "" instead.663 You may run "mix format --migrate" to change all single-quoted664 strings to use the ~c sigil and fix this warning.665 │666 174 │ @anno (if :erlang.system_info(:otp_release) >= '19' do667 │ ~668 │669 └─ lib/phoenix/template.ex:174:50670671 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead672 │673 12 │ worker(Phoenix.Transports.LongPoll.Server, [], restart: :temporary)674 │ ~675 │676 └─ lib/phoenix/transports/long_poll_server.ex:12:7: Phoenix.Transports.LongPoll.Supervisor.init/1677678 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead679 │680 14 │ supervise(children, strategy: :simple_one_for_one)681 │ ~682 │683 └─ lib/phoenix/transports/long_poll_server.ex:14:5: Phoenix.Transports.LongPoll.Supervisor.init/1684685 warning: expected a module (an atom) when invoking config/1 in expression:686687 endpoint.config(:endpoint_id)688689 where "endpoint" was given the type:690691 # type: dynamic(%{..., __pubsub_server__: atom()})692 # from: lib/phoenix/transports/long_poll.ex:191:10693 verify_token(endpoint, token, opts)694695 type warning found at:696 │697 193 │ server_ref = server_ref(endpoint.config(:endpoint_id), id, pid, priv_topic)698 │ ~699 │700 └─ lib/phoenix/transports/long_poll.ex:193:42: Phoenix.Transports.LongPoll.resume_session/3701702 warning: Phoenix.PubSub.subscribe/3 is undefined (module Phoenix.PubSub is not available or is yet to be defined)703 │704 236 │ do: Phoenix.PubSub.subscribe(endpoint.__pubsub_server__, topic, link: true)705 │ ~706 │707 └─ lib/phoenix/transports/long_poll.ex:236:24: Phoenix.Transports.LongPoll.subscribe/2708709 warning: Phoenix.PubSub.broadcast_from!/4 is undefined (module Phoenix.PubSub is not available or is yet to be defined)710 │711 241 │ do: Phoenix.PubSub.broadcast_from!(endpoint.__pubsub_server__, self(), topic, msg)712 │ ~713 │714 └─ lib/phoenix/transports/long_poll.ex:241:24: Phoenix.Transports.LongPoll.broadcast_from!/3715716 warning: Phoenix.PubSub.subscribe/3 is undefined (module Phoenix.PubSub is not available or is yet to be defined)717 │718 62 │ if socket.id, do: PubSub.subscribe(state.pubsub_server, socket.id, link: true)719 │ ~720 │721 └─ lib/phoenix/transports/long_poll_server.ex:62:34: Phoenix.Transports.LongPoll.Server.init/1722 └─ lib/phoenix/transports/long_poll_server.ex:63:22: Phoenix.Transports.LongPoll.Server.init/1723724 warning: unknown key .__pubsub_server__ in expression:725726 endpoint.__pubsub_server__727728 the given type does not have the given key:729730 dynamic(731 %Phoenix.Socket{732 id: term(),733 assigns: term(),734 channel: term(),735 channel_pid: term(),736 endpoint: atom(),737 handler: term(),738 joined: term(),739 pubsub_server: term(),740 ref: term(),741 topic: term(),742 transport: term(),743 transport_pid: term(),744 transport_name: term(),745 serializer: term()746 } or747 %Plug.Conn{748 adapter: term(),749 assigns: term(),750 before_send: term(),751 body_params: term(),752 cookies: term(),753 halted: term(),754 host: term(),755 method: term(),756 owner: term(),757 params: term(),758 path_params: term(),759 path_info: term(),760 port: term(),761 private: term(),762 query_params: term(),763 query_string: term(),764 peer: term(),765 remote_ip: term(),766 req_cookies: term(),767 req_headers: term(),768 request_path: term(),769 resp_body: term(),770 resp_cookies: term(),771 resp_headers: term(),772 scheme: term(),773 script_name: term(),774 secret_key_base: term(),775 state: term(),776 status: term()777 } or atom() or binary()778 )779780 where "endpoint" was given the type:781782 # type: dynamic(%Phoenix.Socket{endpoint: atom()} or %Plug.Conn{} or atom() or binary())783 # from: lib/phoenix/transports/long_poll.ex:246:19784 Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])785786 type warning found at:787 │788 246 │ Phoenix.Token.sign(endpoint, Atom.to_string(endpoint.__pubsub_server__), data, opts[:crypto])789 │ ~~~~~~~~~~~~~~~~~790 │791 └─ lib/phoenix/transports/long_poll.ex:246:58: Phoenix.Transports.LongPoll.sign_token/3792793 warning: Phoenix.PubSub.broadcast_from!/4 is undefined (module Phoenix.PubSub is not available or is yet to be defined)794 │795 148 │ do: PubSub.broadcast_from!(state.pubsub_server, self(), client_ref, msg)796 │ ~797 │798 └─ lib/phoenix/transports/long_poll_server.ex:148:16: Phoenix.Transports.LongPoll.Server.broadcast_from!/3799800 warning: String.lstrip/2 is deprecated. Use String.trim_leading/2 with a binary as second argument instead801 │802 376 │ ext = Path.extname(path) |> String.lstrip(?.) |> String.to_atom803 │ ~804 │805 └─ lib/phoenix/template.ex:376:43: Phoenix.Template.compile/2806807 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead808 │809 613 │ exception -> {:error, {exception, System.stacktrace()}}810 │ ~811 │812 └─ lib/phoenix/test/conn_test.ex:613:48: Phoenix.ConnTest.wrap_request/1813814 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead815 │816 10 │ supervisor(Phoenix.Transports.LongPoll.Supervisor, [])817 │ ~818 │819 └─ lib/phoenix/supervisor.ex:10:7: Phoenix.Supervisor.init/1820821 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead822 │823 12 │ supervise(children, strategy: :one_for_one)824 │ ~825 │826 └─ lib/phoenix/supervisor.ex:12:5: Phoenix.Supervisor.init/1827828 warning: a struct for Phoenix.Socket is expected on struct update:829830 %Phoenix.Socket{socket | id: id}831832 but got type:833834 dynamic()835836 where "socket" was given the type:837838 # type: dynamic()839 # from: lib/phoenix/socket/transport.ex840 {:ok, socket}841842 when defining the variable "socket", you must also pattern match on "%Phoenix.Socket{}"843844 type warning found at:845 │846 171 │ id when is_binary(id) -> {:ok, %Socket{socket | id: id}}847 │ ~848 │849 └─ lib/phoenix/socket/transport.ex:171:42: Phoenix.Socket.Transport.connect_vsn/6850851 warning: a struct for Phoenix.Socket is expected on struct update:852853 %Phoenix.Socket{socket | topic: topic, channel: channel}854855 but got type:856857 dynamic(%{..., handler: atom(), transport_name: term()})858859 where "socket" was given the types:860861 # type: dynamic(%{..., handler: atom()})862 # from: lib/phoenix/socket/transport.ex:231:33863 socket.handler.__channel__(topic, socket.transport_name)864865 # type: dynamic(%{..., handler: atom(), transport_name: term()})866 # from: lib/phoenix/socket/transport.ex:231:33867 socket.handler.__channel__(topic, socket.transport_name)868869 when defining the variable "socket", you must also pattern match on "%Phoenix.Socket{}"870871 type warning found at:872 │873 232 │ socket = %Socket{socket | topic: topic, channel: channel}874 │ ~875 │876 └─ lib/phoenix/socket/transport.ex:232:16: Phoenix.Socket.Transport.do_dispatch/3877878 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead879 │880 188 │ supervisor(Task.Supervisor, [[name: task_supervisor]]),881 │ ~882 │883 └─ lib/phoenix/presence.ex:188:7: Phoenix.Presence.start_link/4884885 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead886 │887 189 │ worker(Phoenix.Tracker, [module, opts, opts])888 │ ~889 │890 └─ lib/phoenix/presence.ex:189:7: Phoenix.Presence.start_link/4891892 warning: Phoenix.PubSub.direct_broadcast!/4 is undefined (module Phoenix.PubSub is not available or is yet to be defined)893 │894 202 │ Phoenix.PubSub.direct_broadcast!(node_name, pubsub_server, topic, msg)895 │ ~896 │897 └─ lib/phoenix/presence.ex:202:24: Phoenix.Presence.handle_diff/5898899 warning: Phoenix.Tracker.list/2 is undefined (module Phoenix.Tracker is not available or is yet to be defined)900 │901 236 │ |> Phoenix.Tracker.list(topic)902 │ ~903 │904 └─ lib/phoenix/presence.ex:236:26: Phoenix.Presence.list/2905906 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead907 │908 50 │ __catch__(conn, kind, reason, System.stacktrace, opts)909 │ ~910 │911 └─ lib/phoenix/endpoint/render_errors.ex:50:42: Phoenix.Endpoint.RenderErrors.__catch__/4912913 warning: String.strip/1 is deprecated. Use String.trim/1 instead914 │915 269 │ raise ArgumentError, message: String.strip(message)916 │ ~917 │918 └─ lib/phoenix/router/helpers.ex:269:42: Phoenix.Router.Helpers.raise_route_error/5919920 warning: expected a map or struct when accessing .url in expression:921922 endpoint.url923924 where "endpoint" was given the types:925926 # type: dynamic(atom())927 # from: lib/phoenix/router/helpers.ex:24:20928 endpoint929930 # type: atom()931 # from: lib/phoenix/router/helpers.ex:24:35932 is_atom(endpoint)933934 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()935936 type warning found at:937 │938 25 │ endpoint.url939 │ ~940 │941 └─ lib/phoenix/router/helpers.ex:25:14: Phoenix.Router.Helpers.url/2942943 warning: String.rjust/2 is deprecated. Use String.pad_leading/2 instead944 │945 34 │ String.rjust(route_name, route_name_len) <> " " <>946 │ ~947 │948 └─ lib/phoenix/router/console_formatter.ex:34:12: Phoenix.Router.ConsoleFormatter.format_route/2949950 warning: String.ljust/2 is deprecated. Use String.pad_trailing/2 instead951 │952 35 │ String.ljust(verb, verb_len) <> " " <>953 │ ~954 │955 └─ lib/phoenix/router/console_formatter.ex:35:12: Phoenix.Router.ConsoleFormatter.format_route/2956 └─ lib/phoenix/router/console_formatter.ex:36:12: Phoenix.Router.ConsoleFormatter.format_route/2957958 warning: Phoenix.PubSub.broadcast/3 is undefined (module Phoenix.PubSub is not available or is yet to be defined)959 │960 74 │ PubSub.broadcast pubsub_server, topic, %Broadcast{961 │ ~962 │963 └─ lib/phoenix/channel/server.ex:74:12: Phoenix.Channel.Server.broadcast/4964965 warning: Phoenix.PubSub.broadcast!/3 is undefined (module Phoenix.PubSub is not available or is yet to be defined)966 │967 90 │ PubSub.broadcast! pubsub_server, topic, %Broadcast{968 │ ~969 │970 └─ lib/phoenix/channel/server.ex:90:12: Phoenix.Channel.Server.broadcast!/4971972 warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead973 │974 19 │ supervise(children, strategy: :one_for_one)975 │ ~976 │977 └─ lib/phoenix/endpoint/server.ex:19:5: Phoenix.Endpoint.Server.init/1978979 warning: Phoenix.PubSub.broadcast_from/4 is undefined (module Phoenix.PubSub is not available or is yet to be defined)980 │981 106 │ PubSub.broadcast_from pubsub_server, from, topic, %Broadcast{982 │ ~983 │984 └─ lib/phoenix/channel/server.ex:106:12: Phoenix.Channel.Server.broadcast_from/5985986 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead987 │988 23 │ {:upgrade, :protocol, __MODULE__, req, {:error, mfa, kind, reason, System.stacktrace}}989 │ ~990 │991 └─ lib/phoenix/endpoint/cowboy_websocket.ex:23:83: Phoenix.Endpoint.CowboyWebSocket.init/3992993 warning: Phoenix.PubSub.broadcast_from!/4 is undefined (module Phoenix.PubSub is not available or is yet to be defined)994 │995 122 │ PubSub.broadcast_from! pubsub_server, from, topic, %Broadcast{996 │ ~997 │998 └─ lib/phoenix/channel/server.ex:122:12: Phoenix.Channel.Server.broadcast_from!/59991000 warning: Phoenix.PubSub.subscribe/3 is undefined (module Phoenix.PubSub is not available or is yet to be defined)1001 │1002 197 │ PubSub.subscribe(socket.pubsub_server, socket.topic,1003 │ ~1004 │1005 └─ lib/phoenix/channel/server.ex:197:12: Phoenix.Channel.Server.join/410061007 warning: incompatible types given to Plug.Adapters.Cowboy.child_spec/4:10081009 Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)10101011 given types:10121013 (1014 dynamic(:http or :https),1015 -dynamic(%{..., __sockets__: term()})-,1016 empty_list(),1017 dynamic(empty_list() or non_empty_list(term(), term()))1018 )10191020 but expected one of:10211022 :http or :https, atom() or binary(), term(), term()10231024 where "config" was given the type:10251026 # type: dynamic(empty_list() or non_empty_list(term(), term()))1027 # from: lib/phoenix/endpoint/cowboy_handler.ex:79:121028 config = Keyword.put_new(config, :dispatch, _: dispatches)10291030 where "endpoint" was given the type:10311032 # type: dynamic(%{..., __sockets__: term()})1033 # from: lib/phoenix/endpoint/cowboy_handler.ex:67:261034 {path, socket} <- endpoint.__sockets__10351036 where "scheme" was given the types:10371038 # type: dynamic()1039 # from: lib/phoenix/endpoint/cowboy_handler.ex:61:181040 scheme10411042 # type: dynamic(:http or :https)1043 # from: lib/phoenix/endpoint/cowboy_handler.ex:82:281044 Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)10451046 type warning found at:1047 │1048 82 │ Plug.Adapters.Cowboy.child_spec(scheme, endpoint, [], config)1049 │ ~1050 │1051 └─ lib/phoenix/endpoint/cowboy_handler.ex:82:28: Phoenix.Endpoint.CowboyHandler.child_spec/310521053 warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1054 │1055 38 │ [worker(Phoenix.Config, args)]1056 │ ~1057 │1058 └─ lib/phoenix/endpoint/adapter.ex:38:6: Phoenix.Endpoint.Adapter.config_children/21059 └─ lib/phoenix/endpoint/adapter.ex:80:8: Phoenix.Endpoint.Adapter.code_reloader_children/210601061 warning: Supervisor.Spec.supervisor/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead1062 │1063 46 │ [supervisor(adapter, [mod.__pubsub_server__(), pub_conf])]1064 │ ~1065 │1066 └─ lib/phoenix/endpoint/adapter.ex:46:8: Phoenix.Endpoint.Adapter.pubsub_children/21067 └─ lib/phoenix/endpoint/adapter.ex:55:8: Phoenix.Endpoint.Adapter.server_children/310681069 warning: Supervisor.Spec.worker/3 is deprecated. Use the new child specifications outlined in the Supervisor module instead1070 │1071 64 │ worker(Phoenix.Endpoint.Watcher, watcher_args(cmd, args),1072 │ ~1073 │1074 └─ lib/phoenix/endpoint/adapter.ex:64:9: Phoenix.Endpoint.Adapter.watcher_children/310751076 warning: incompatible types given to warmup_static/1:10771078 warmup_static(endpoint)10791080 given types:10811082 -dynamic(%{..., url: term()})-10831084 but expected one of:10851086 atom()10871088 where "endpoint" was given the type:10891090 # type: dynamic(%{..., url: term()})1091 # from: lib/phoenix/endpoint/adapter.ex:232:51092 warmup_url(endpoint)10931094 type warning found at:1095 │1096 233 │ warmup_static(endpoint)1097 │ ~1098 │1099 └─ lib/phoenix/endpoint/adapter.ex:233:5: Phoenix.Endpoint.Adapter.warmup/111001101 warning: String.strip/1 is deprecated. Use String.trim/1 instead1102 │1103 169 │ <pre>#{String.strip(output)}</pre>1104 │ ~1105 │1106 └─ lib/phoenix/code_reloader.ex:169:29: Phoenix.CodeReloader.template/211071108 warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead1109 │1110 46 │ IO.puts Exception.format(kind, reason, System.stacktrace)1111 │ ~1112 │1113 └─ lib/phoenix/code_reloader/server.ex:46:59: Phoenix.CodeReloader.Server.handle_call/311141115 warning: Enum.partition/2 is deprecated. Use Enum.split_with/2 instead1116 │1117 154 │ Enum.partition attrs, fn1118 │ ~1119 │1120 └─ lib/mix/tasks/phoenix.gen.model.ex:154:10: Mix.Tasks.Phoenix.Gen.Model.partition_attrs_and_assocs/111211122 warning: expected a map or struct when accessing .__phoenix_recompile__? in expression:11231124 mod.__phoenix_recompile__?11251126 where "mod" was given the type:11271128 # type: dynamic(atom())1129 # from: lib/mix/tasks/compile.phoenix.ex:34:121130 Code.ensure_loaded?(mod)11311132 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()11331134 type warning found at:1135 │1136 36 │ mod.__phoenix_recompile__?1137 │ ~1138 │1139 └─ lib/mix/tasks/compile.phoenix.ex:36:13: Mix.Tasks.Compile.Phoenix.modules_for_recompilation/111401141Generated phoenix app1142==> phoenix_ecto1143Compiling 4 files (.ex)1144Generated phoenix_ecto app1145==> authable1146Compiling 34 files (.ex)1147 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead1148 │1149 10 │ @auth_strategies Application.get_env(:authable, :auth_strategies)1150 │ ~1151 │1152 └─ lib/authable/auth_strategies/header.ex:10:32: Authable.AuthStrategy.Header (module)11531154 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead1155 │1156 128 │ @repo Application.get_env(:authable, :repo)1157 │ ~1158 │1159 └─ lib/authable.ex:128:21: Authable (module)11601161 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead1162 │1163 8 │ @auth_strategies Application.get_env(:authable, :auth_strategies)1164 │ ~1165 │1166 └─ lib/authable/auth_strategies/query_param.ex:8:32: Authable.AuthStrategy.QueryParam (module)11671168 warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead1169 │1170 10 │ @auth_strategies Application.get_env(:authable, :auth_strategies)1171 │ ~1172 │1173 └─ lib/authable/auth_strategies/session.ex:10:32: Authable.AuthStrategy.Session (module)117411751176== Compilation error in file lib/authable/auth_strategies/session.ex ==1177** (BadMapError) expected a map, got:11781179 nil11801181 (elixir 1.20.3) lib/map.ex:596: Map.get(nil, :sessions, nil)1182 lib/authable/auth_strategies/session.ex:11: (module)1183could not compile dependency :authable, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile authable --force", update it with "mix deps.update authable" or clean it with "mix deps.clean authable"