shield

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"