Build log
host
humo_rbac 0.1.0 · fail · run humo_rbac-0.1.0-1790948662394
1313 of 1313 lines
1Resolving Hex dependencies...2Resolution completed in 0.495s3Unchanged:4 bamboo 1.7.15 bamboo_smtp 2.1.06 bcrypt_elixir 3.3.27 castore 1.0.218 certifi 2.17.09 circular_buffer 1.1.010 comeonin 5.5.111 cowboy 2.19.012 cowboy_telemetry 0.4.013 cowlib 2.20.0 VULNERABLE!14 EEF-CVE-2026-43966 (MEDIUM)15 aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c16 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/217 https://osv.dev/vulnerability/EEF-CVE-2026-439661819 EEF-CVE-2026-43969 (LOW)20 aka: CVE-2026-43969, GHSA-g2wm-735q-3f5621 Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/122 https://osv.dev/vulnerability/EEF-CVE-2026-4396923 db_connection 2.10.224 decimal 3.1.125 ecto 3.14.226 ecto_sql 3.14.027 elixir_make 0.10.028 esbuild 0.10.029 expo 1.1.130 file_system 0.2.1031 gen_smtp 0.15.032 gettext 0.26.233 h2 0.12.334 hackney 4.8.435 humo 0.1.236 humo_account 0.1.037 humo_rbac 0.1.038 idna 7.1.039 interactive_cmd 0.1.440 jason 1.4.541 mime 1.6.042 mimerl 1.5.043 nerves 2.0.0-pre.244 nerves_discovery 0.1.545 nerves_logging 0.2.446 nerves_runtime 0.13.1347 nerves_system_bbb 2.30.248 nerves_system_br 1.34.449 nerves_system_mangopi_mq_pro 0.17.250 nerves_system_qemu_aarch64 0.4.251 nerves_system_rpi0 2.1.252 nerves_system_rpi4 2.1.253 nerves_system_rpi5 2.1.254 nerves_system_trellis 0.5.055 nerves_system_x86_64 1.34.256 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.157 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.158 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.159 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.160 nerves_toolchain_x86_64_nerves_linux_musl 15.3.161 nerves_uevent 0.1.762 parse_trans 3.4.263 phoenix 1.6.1764 phoenix_ecto 4.7.065 phoenix_html 3.3.466 phoenix_live_dashboard 0.9.167 phoenix_live_view 1.2.1268 phoenix_pubsub 2.3.069 phoenix_template 1.1.070 phoenix_view 2.0.471 plug 1.20.372 plug_cowboy 2.9.073 plug_crypto 1.2.574 postgrex 0.22.475 property_table 0.3.476 quic 2.1.077 ranch 2.3.078 ring_logger 0.11.779 ssl_verify_fun 1.1.780 tablet 0.3.381 telemetry 1.4.282 telemetry_metrics 0.6.283 telemetry_poller 1.3.084 toolshed 0.5.085 uboot_env 1.0.286 webtransport 0.4.787Found packages with security advisories, see above for details88All dependencies have been fetched89==> file_system90Compiling 7 files (.ex)91 warning: using single-quoted strings to represent charlists is deprecated.92 Use ~c"" if you indeed want a charlist or use "" instead.93 You may run "mix format --migrate" to change all single-quoted94 strings to use the ~c sigil and fix this warning.95 │96 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',97 │ ~98 │99 └─ lib/file_system/backends/fs_inotify.ex:71:11100101 warning: using single-quoted strings to represent charlists is deprecated.102 Use ~c"" if you indeed want a charlist or use "" instead.103 You may run "mix format --migrate" to change all single-quoted104 strings to use the ~c sigil and fix this warning.105 │106 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',107 │ ~108 │109 └─ lib/file_system/backends/fs_inotify.ex:71:17110111 warning: using single-quoted strings to represent charlists is deprecated.112 Use ~c"" if you indeed want a charlist or use "" instead.113 You may run "mix format --migrate" to change all single-quoted114 strings to use the ~c sigil and fix this warning.115 │116 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',117 │ ~118 │119 └─ lib/file_system/backends/fs_inotify.ex:71:27120121 warning: using single-quoted strings to represent charlists is deprecated.122 Use ~c"" if you indeed want a charlist or use "" instead.123 You may run "mix format --migrate" to change all single-quoted124 strings to use the ~c sigil and fix this warning.125 │126 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',127 │ ~128 │129 └─ lib/file_system/backends/fs_inotify.ex:71:33130131 warning: using single-quoted strings to represent charlists is deprecated.132 Use ~c"" if you indeed want a charlist or use "" instead.133 You may run "mix format --migrate" to change all single-quoted134 strings to use the ~c sigil and fix this warning.135 │136 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',137 │ ~138 │139 └─ lib/file_system/backends/fs_inotify.ex:71:48140141 warning: using single-quoted strings to represent charlists is deprecated.142 Use ~c"" if you indeed want a charlist or use "" instead.143 You may run "mix format --migrate" to change all single-quoted144 strings to use the ~c sigil and fix this warning.145 │146 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',147 │ ~148 │149 └─ lib/file_system/backends/fs_inotify.ex:71:54150151 warning: using single-quoted strings to represent charlists is deprecated.152 Use ~c"" if you indeed want a charlist or use "" instead.153 You may run "mix format --migrate" to change all single-quoted154 strings to use the ~c sigil and fix this warning.155 │156 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',157 │ ~158 │159 └─ lib/file_system/backends/fs_inotify.ex:71:66160161 warning: using single-quoted strings to represent charlists is deprecated.162 Use ~c"" if you indeed want a charlist or use "" instead.163 You may run "mix format --migrate" to change all single-quoted164 strings to use the ~c sigil and fix this warning.165 │166 71 │ '-e', 'modify', '-e', 'close_write', '-e', 'moved_to', '-e', 'moved_from',167 │ ~168 │169 └─ lib/file_system/backends/fs_inotify.ex:71:72170171 warning: using single-quoted strings to represent charlists is deprecated.172 Use ~c"" if you indeed want a charlist or use "" instead.173 You may run "mix format --migrate" to change all single-quoted174 strings to use the ~c sigil and fix this warning.175 │176 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'177 │ ~178 │179 └─ lib/file_system/backends/fs_inotify.ex:72:11180181 warning: using single-quoted strings to represent charlists is deprecated.182 Use ~c"" if you indeed want a charlist or use "" instead.183 You may run "mix format --migrate" to change all single-quoted184 strings to use the ~c sigil and fix this warning.185 │186 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'187 │ ~188 │189 └─ lib/file_system/backends/fs_inotify.ex:72:17190191 warning: using single-quoted strings to represent charlists is deprecated.192 Use ~c"" if you indeed want a charlist or use "" instead.193 You may run "mix format --migrate" to change all single-quoted194 strings to use the ~c sigil and fix this warning.195 │196 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'197 │ ~198 │199 └─ lib/file_system/backends/fs_inotify.ex:72:27200201 warning: using single-quoted strings to represent charlists is deprecated.202 Use ~c"" if you indeed want a charlist or use "" instead.203 You may run "mix format --migrate" to change all single-quoted204 strings to use the ~c sigil and fix this warning.205 │206 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'207 │ ~208 │209 └─ lib/file_system/backends/fs_inotify.ex:72:33210211 warning: using single-quoted strings to represent charlists is deprecated.212 Use ~c"" if you indeed want a charlist or use "" instead.213 You may run "mix format --migrate" to change all single-quoted214 strings to use the ~c sigil and fix this warning.215 │216 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'217 │ ~218 │219 └─ lib/file_system/backends/fs_inotify.ex:72:43220221 warning: using single-quoted strings to represent charlists is deprecated.222 Use ~c"" if you indeed want a charlist or use "" instead.223 You may run "mix format --migrate" to change all single-quoted224 strings to use the ~c sigil and fix this warning.225 │226 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'227 │ ~228 │229 └─ lib/file_system/backends/fs_inotify.ex:72:49230231 warning: using single-quoted strings to represent charlists is deprecated.232 Use ~c"" if you indeed want a charlist or use "" instead.233 You may run "mix format --migrate" to change all single-quoted234 strings to use the ~c sigil and fix this warning.235 │236 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'237 │ ~238 │239 └─ lib/file_system/backends/fs_inotify.ex:72:59240241 warning: using single-quoted strings to represent charlists is deprecated.242 Use ~c"" if you indeed want a charlist or use "" instead.243 You may run "mix format --migrate" to change all single-quoted244 strings to use the ~c sigil and fix this warning.245 │246 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'247 │ ~248 │249 └─ lib/file_system/backends/fs_inotify.ex:72:79250251 warning: using single-quoted strings to represent charlists is deprecated.252 Use ~c"" if you indeed want a charlist or use "" instead.253 You may run "mix format --migrate" to change all single-quoted254 strings to use the ~c sigil and fix this warning.255 │256 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'257 │ ~258 │259 └─ lib/file_system/backends/fs_inotify.ex:72:90260261 warning: using single-quoted strings to represent charlists is deprecated.262 Use ~c"" if you indeed want a charlist or use "" instead.263 You may run "mix format --migrate" to change all single-quoted264 strings to use the ~c sigil and fix this warning.265 │266 72 │ '-e', 'create', '-e', 'delete', '-e', 'attrib', '--format', format, '--quiet', '-m', '-r'267 │ ~268 │269 └─ lib/file_system/backends/fs_inotify.ex:72:96270271 warning: using single-quoted strings to represent charlists is deprecated.272 Use ~c"" if you indeed want a charlist or use "" instead.273 You may run "mix format --migrate" to change all single-quoted274 strings to use the ~c sigil and fix this warning.275 │276 84 │ parse_options(t, result -- ['-r'])277 │ ~278 │279 └─ lib/file_system/backends/fs_inotify.ex:84:33280281 warning: using single-quoted strings to represent charlists is deprecated.282 Use ~c"" if you indeed want a charlist or use "" instead.283 You may run "mix format --migrate" to change all single-quoted284 strings to use the ~c sigil and fix this warning.285 │286 104 │ bash_args = ['-c', '#{executable_path()} "$0" "$@" & PID=$!; read a; kill -KILL $PID']287 │ ~288 │289 └─ lib/file_system/backends/fs_inotify.ex:104:22290291 warning: using single-quoted strings to represent charlists is deprecated.292 Use ~c"" if you indeed want a charlist or use "" instead.293 You may run "mix format --migrate" to change all single-quoted294 strings to use the ~c sigil and fix this warning.295 │296 104 │ bash_args = ['-c', '#{executable_path()} "$0" "$@" & PID=$!; read a; kill -KILL $PID']297 │ ~298 │299 └─ lib/file_system/backends/fs_inotify.ex:104:28300301 warning: using single-quoted strings to represent charlists is deprecated.302 Use ~c"" if you indeed want a charlist or use "" instead.303 You may run "mix format --migrate" to change all single-quoted304 strings to use the ~c sigil and fix this warning.305 │306 109 │ bash_args ++ ['--'] ++ port_args307 │ ~308 │309 └─ lib/file_system/backends/fs_inotify.ex:109:29310311 warning: using single-quoted strings to represent charlists is deprecated.312 Use ~c"" if you indeed want a charlist or use "" instead.313 You may run "mix format --migrate" to change all single-quoted314 strings to use the ~c sigil and fix this warning.315 │316 116 │ {:spawn_executable, '/bin/sh'},317 │ ~318 │319 └─ lib/file_system/backends/fs_inotify.ex:116:31320321 warning: using single-quoted strings to represent charlists is deprecated.322 Use ~c"" if you indeed want a charlist or use "" instead.323 You may run "mix format --migrate" to change all single-quoted324 strings to use the ~c sigil and fix this warning.325 │326 94 │ args = ['-F' | dirs |> Enum.map(&Path.absname/1) |> Enum.map(&to_charlist/1)]327 │ ~328 │329 └─ lib/file_system/backends/fs_mac.ex:94:17330331 warning: using single-quoted strings to represent charlists is deprecated.332 Use ~c"" if you indeed want a charlist or use "" instead.333 You may run "mix format --migrate" to change all single-quoted334 strings to use the ~c sigil and fix this warning.335 │336 103 │ ['--latency=#{latency / 1}' | result]337 │ ~338 │339 └─ lib/file_system/backends/fs_mac.ex:103:10340341 warning: using single-quoted strings to represent charlists is deprecated.342 Use ~c"" if you indeed want a charlist or use "" instead.343 You may run "mix format --migrate" to change all single-quoted344 strings to use the ~c sigil and fix this warning.345 │346 111 │ parse_options(t, ['--no-defer' | result])347 │ ~348 │349 └─ lib/file_system/backends/fs_mac.ex:111:23350351 warning: using single-quoted strings to represent charlists is deprecated.352 Use ~c"" if you indeed want a charlist or use "" instead.353 You may run "mix format --migrate" to change all single-quoted354 strings to use the ~c sigil and fix this warning.355 │356 121 │ parse_options(t, ['--with-root' | result])357 │ ~358 │359 └─ lib/file_system/backends/fs_mac.ex:121:23360361 warning: using single-quoted strings to represent charlists is deprecated.362 Use ~c"" if you indeed want a charlist or use "" instead.363 You may run "mix format --migrate" to change all single-quoted364 strings to use the ~c sigil and fix this warning.365 │366 83 │ '--format', format, '--quiet', '-m', '-r'367 │ ~368 │369 └─ lib/file_system/backends/fs_windows.ex:83:11370371 warning: using single-quoted strings to represent charlists is deprecated.372 Use ~c"" if you indeed want a charlist or use "" instead.373 You may run "mix format --migrate" to change all single-quoted374 strings to use the ~c sigil and fix this warning.375 │376 83 │ '--format', format, '--quiet', '-m', '-r'377 │ ~378 │379 └─ lib/file_system/backends/fs_windows.ex:83:31380381 warning: using single-quoted strings to represent charlists is deprecated.382 Use ~c"" if you indeed want a charlist or use "" instead.383 You may run "mix format --migrate" to change all single-quoted384 strings to use the ~c sigil and fix this warning.385 │386 83 │ '--format', format, '--quiet', '-m', '-r'387 │ ~388 │389 └─ lib/file_system/backends/fs_windows.ex:83:42390391 warning: using single-quoted strings to represent charlists is deprecated.392 Use ~c"" if you indeed want a charlist or use "" instead.393 You may run "mix format --migrate" to change all single-quoted394 strings to use the ~c sigil and fix this warning.395 │396 83 │ '--format', format, '--quiet', '-m', '-r'397 │ ~398 │399 └─ lib/file_system/backends/fs_windows.ex:83:48400401 warning: using single-quoted strings to represent charlists is deprecated.402 Use ~c"" if you indeed want a charlist or use "" instead.403 You may run "mix format --migrate" to change all single-quoted404 strings to use the ~c sigil and fix this warning.405 │406 95 │ parse_options(t, result -- ['-r'])407 │ ~408 │409 └─ lib/file_system/backends/fs_windows.ex:95:33410411 warning: expected a map or struct when accessing .bootstrap in expression:412413 module.bootstrap414415 where "module" was given the type:416417 # type: dynamic(atom())418 # from: lib/file_system/backend.ex:22:17419 validate_os(backend, module)420421 hint: "var.field" (without parentheses) means "var" is a map() while "var.fun()" (with parentheses) means "var" is an atom()422423 type warning found at:424 │425 23 │ :ok <- module.bootstrap426 │ ~427 │428 └─ lib/file_system/backend.ex:23:24: FileSystem.Backend.backend/1429430Generated file_system app431==> mime432Compiling 2 files (.ex)433Generated mime app434==> nerves_compatibility_test435===> Analyzing applications...436===> Compiling gen_smtp437 ┌─ src/gen_smtp_server_session.erl:438 │439 265 │ case catch Module:code_change(OldVsn, State#state.callbackstate, Extra) of440 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.441Compile directive 'nowarn_deprecated_catch' can be used to suppress442warnings in selected modules.443444 ┌─ src/gen_smtp_server_session.erl:445 │446 389 │ crypto:start(), % ensure crypto is started, we're gonna need it447 │ ╰── Warning: crypto:start/0 is deprecated; use application:start(crypto) instead448449450 ┌─ src/smtp_util.erl:451 │452 73 │ Bin = crypto:hmac(md5, Key, Data),453 │ ╰── Warning: crypto:hmac/3 is removed; use crypto:mac/4 instead454455456 ┌─ src/gen_smtp_server.erl:457 │458 225 │ lists:foreach(fun(#listener{socket=S}) -> catch smtp_socket:close(S) end, State#state.listeners),459 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.460Compile directive 'nowarn_deprecated_catch' can be used to suppress461warnings in selected modules.462463464 ┌─ src/gen_smtp_client.erl:465 │466 620 │ case catch smtp_socket:to_ssl_client(Socket, proplists:get_value(tls_options, Options, []), 5000) of467 │ ╰── Warning: 'catch ...' is deprecated; please use 'try ... catch ... end' instead.468Compile directive 'nowarn_deprecated_catch' can be used to suppress469warnings in selected modules.470471472 ┌─ src/gen_smtp_application.erl:473 │474 12 │ start_ok(_App, {error, {already_started, _App}}) -> ok;475 │ ╰── Warning: variable '_App' is bound multiple times in this pattern.476If you mean to ignore this value, use '_' or477a different underscore-prefixed name478479 ┌─ src/gen_smtp_application.erl:480 │481 12 │ start_ok(_App, {error, {already_started, _App}}) -> ok;482 │ ╰── Warning: variable '_App' is bound multiple times in this pattern.483If you mean to ignore this value, use '_' or484a different underscore-prefixed name485486487==> plug_crypto488Compiling 5 files (.ex)489Generated plug_crypto app490==> nerves_compatibility_test491===> Analyzing applications...492===> Compiling cowlib493==> esbuild494Compiling 4 files (.ex)495Generated esbuild app496==> telemetry_metrics497Compiling 7 files (.ex)498 warning: unused require Logger499 │500 391 │ require Logger501 │ ~502 │503 └─ lib/telemetry_metrics.ex:391:3504505Generated telemetry_metrics app506==> nerves_compatibility_test507===> Analyzing applications...508===> Compiling telemetry_poller509===> Analyzing applications...510===> Compiling cowboy511==> gettext512Compiling 18 files (.ex)513 warning: unused require Gettext.Macros514 │515 594 │ require Gettext.Macros516 │ ~517 │518 └─ lib/gettext.ex:594:3519520 warning: Kernel.ParallelCompiler.async/1 is deprecated. Use `pmap/2` instead521 │522 426 │ Kernel.ParallelCompiler.async(fn ->523 │ ~524 │525 └─ lib/gettext/compiler.ex:426:39: Gettext.Compiler.compile_po_files/3526527 warning: the following clause is redundant:528529 defp ensure_empty_msgstr!(%Expo.Message.Plural{} = message)530531 it has type:532533 dynamic(%Expo.Message.Plural{})534535 previous clauses have already matched on the following types:536537 %Expo.Message.Singular{}538 %Expo.Message.Plural{}539540 │541 391 │ defp ensure_empty_msgstr!(%Message.Plural{} = message) do542 │ ~543 │544 └─ lib/gettext/extractor.ex:391:8: Gettext.Extractor.ensure_empty_msgstr!/1545546Generated gettext app547==> plug548Compiling 1 file (.erl)549Compiling 42 files (.ex)550Generated plug app551==> phoenix_html552Compiling 9 files (.ex)553 warning: the 1st pattern in clause will never match:554555 60556557 because it is expected to receive type:558559 dynamic(empty_list() or non_empty_list(term(), term()))560561 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())562563 type warning found at:564 │565 56 │ def to_iodata(?<), do: "<"566 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~567 │568 └─ lib/phoenix_html/safe.ex:56: Phoenix.HTML.Safe.List.to_iodata/1569570 warning: the 1st pattern in clause will never match:571572 62573574 because it is expected to receive type:575576 dynamic(empty_list() or non_empty_list(term(), term()))577578 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())579580 type warning found at:581 │582 57 │ def to_iodata(?>), do: ">"583 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~584 │585 └─ lib/phoenix_html/safe.ex:57: Phoenix.HTML.Safe.List.to_iodata/1586587 warning: the 1st pattern in clause will never match:588589 38590591 because it is expected to receive type:592593 dynamic(empty_list() or non_empty_list(term(), term()))594595 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())596597 type warning found at:598 │599 58 │ def to_iodata(?&), do: "&"600 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~601 │602 └─ lib/phoenix_html/safe.ex:58: Phoenix.HTML.Safe.List.to_iodata/1603604 warning: comparison between distinct types found:605606 id == nil607608 given types:609610 dynamic(not false and not nil and not binary()) == nil611612 where "id" was given the types:613614 # type: dynamic(not false and not nil)615 # from: lib/phoenix_html/form_data.ex:92:8616 id = Keyword.get(opts, :id) || name617618 # type: dynamic(not false and not nil and not binary())619 # from: lib/phoenix_html/form_data.ex:94:12620 is_binary(id)621622 While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false623624 type warning found at:625 │626 94 │ unless is_binary(id) or is_nil(id) do627 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~628 │629 └─ lib/phoenix_html/form_data.ex:94: Phoenix.HTML.FormData.Atom.to_form/2630631 warning: the 1st pattern in clause will never match:632633 34634635 because it is expected to receive type:636637 dynamic(empty_list() or non_empty_list(term(), term()))638639 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())640641 type warning found at:642 │643 59 │ def to_iodata(?"), do: """644 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~645 │646 └─ lib/phoenix_html/safe.ex:59: Phoenix.HTML.Safe.List.to_iodata/1647648 warning: the 1st pattern in clause will never match:649650 39651652 because it is expected to receive type:653654 dynamic(empty_list() or non_empty_list(term(), term()))655656 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())657658 type warning found at:659 │660 60 │ def to_iodata(?'), do: "'"661 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~662 │663 └─ lib/phoenix_html/safe.ex:60: Phoenix.HTML.Safe.List.to_iodata/1664665 warning: the 1st pattern in clause will never match:666667 {:safe, data}668669 because it is expected to receive type:670671 dynamic(empty_list() or non_empty_list(term(), term()))672673 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())674675 type warning found at:676 │677 76 │ def to_iodata({:safe, data}) do678 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~679 │680 └─ lib/phoenix_html/safe.ex:76: Phoenix.HTML.Safe.List.to_iodata/1681682 warning: the following clause is redundant:683684 def to_iodata(other)685686 it has type:687688 dynamic(empty_list() or non_empty_list(term(), term()))689690 previous clauses have already matched on the following types:691692 non_empty_list(term(), term())693 empty_list()694695 │696 80 │ def to_iodata(other) do697 │ ~698 │699 └─ lib/phoenix_html/safe.ex:80:7: Phoenix.HTML.Safe.List.to_iodata/1700701 warning: the 1st pattern in clause will never match:702703 h704705 because it is expected to receive type:706707 dynamic(empty_list() or non_empty_list(term(), term()))708709 where "h" was given the type:710711 # type: integer()712 # from: lib/phoenix_html/safe.ex:62:25713 is_integer(h)714715 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())716717 type warning found at:718 │719 62 │ def to_iodata(h) when is_integer(h) and h <= 255 do720 │ ~721 │722 └─ lib/phoenix_html/safe.ex:62:17: Phoenix.HTML.Safe.List.to_iodata/1723724 warning: the 1st pattern in clause will never match:725726 h727728 because it is expected to receive type:729730 dynamic(empty_list() or non_empty_list(term(), term()))731732 where "h" was given the type:733734 # type: integer()735 # from: lib/phoenix_html/safe.ex:66:25736 is_integer(h)737738 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())739740 type warning found at:741 │742 66 │ def to_iodata(h) when is_integer(h) do743 │ ~744 │745 └─ lib/phoenix_html/safe.ex:66:17: Phoenix.HTML.Safe.List.to_iodata/1746747 warning: the 1st pattern in clause will never match:748749 h750751 because it is expected to receive type:752753 dynamic(empty_list() or non_empty_list(term(), term()))754755 where "h" was given the type:756757 # type: binary()758 # from: lib/phoenix_html/safe.ex:72:25759 is_binary(h)760761 hint: defimpl for List requires its callbacks to match exclusively on empty_list() or non_empty_list(term(), term())762763 type warning found at:764 │765 72 │ def to_iodata(h) when is_binary(h) do766 │ ~767 │768 └─ lib/phoenix_html/safe.ex:72:17: Phoenix.HTML.Safe.List.to_iodata/1769770Generated phoenix_html app771==> phoenix_template772Compiling 4 files (.ex)773Generated phoenix_template app774==> phoenix_view775Compiling 1 file (.ex)776 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 operator777 │778 655 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix779 │ ~780 │781 └─ lib/phoenix_view.ex:655:29: Phoenix.View.unsuffix/2782783Generated phoenix_view app784warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"785 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2786 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1787 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5788 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2789 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4790 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2791792==> phoenix_ecto793Compiling 7 files (.ex)794Generated phoenix_ecto app795==> nerves_compatibility_test796===> Analyzing applications...797===> Compiling cowboy_telemetry798==> plug_cowboy799Compiling 5 files (.ex)800Generated plug_cowboy app801warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"802 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2803 (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1804 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5805 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2806 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4807 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2808809==> phoenix810Compiling 69 files (.ex)811 warning: using single-quoted strings to represent charlists is deprecated.812 Use ~c"" if you indeed want a charlist or use "" instead.813 You may run "mix format --migrate" to change all single-quoted814 strings to use the ~c sigil and fix this warning.815 │816 258 │ notBefore: {:utcTime, '#{not_before}000000Z'},817 │ ~818 │819 └─ lib/mix/tasks/phx.gen.cert.ex:258:33820821 warning: using single-quoted strings to represent charlists is deprecated.822 Use ~c"" if you indeed want a charlist or use "" instead.823 You may run "mix format --migrate" to change all single-quoted824 strings to use the ~c sigil and fix this warning.825 │826 259 │ notAfter: {:utcTime, '#{not_after}000000Z'}827 │ ~828 │829 └─ lib/mix/tasks/phx.gen.cert.ex:259:32830831 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead832 │833 50 │ Logger.warn(834 │ ~835 │836 └─ lib/phoenix/code_reloader/server.ex:50:20: Phoenix.CodeReloader.Server.handle_call/3837838 warning: unused require Logger839 │840 9 │ require Logger841 │ ~842 │843 └─ lib/phoenix/config.ex:9:3844845 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.846847 This error happens when you have function calls without parentheses inside keywords. For example:848849 function(arg, one: nested_call a, b, c)850 function(arg, one: if expr, do: :this, else: :that)851852 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:853854 function(arg, one: if(expr, do: :this, else: :that))855 function(arg, one: nested_call(a, b, c))856857 Ambiguity found at:858 │859 998 │ defp get_disposition_type(other), do: raise ArgumentError, "expected :disposition to be :attachment or :inline, got: #{inspect(other)}"860 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~861 │862 └─ lib/phoenix/controller.ex:998863864 warning: unused require Logger865 │866 259 │ require Logger867 │ ~868 │869 └─ lib/phoenix/endpoint.ex:259:3870871 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead872 │873 1009 │ Logger.warn "send_download/3 has been invoked during an AJAX request. " <>874 │ ~875 │876 └─ lib/phoenix/controller.ex:1009:14: Phoenix.Controller.warn_if_ajax/1877878 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead879 │880 34 │ Logger.warn("no configuration found for otp_app #{inspect(otp_app)} and module #{inspect(mod)}")881 │ ~882 │883 └─ lib/phoenix/endpoint/supervisor.ex:34:20: Phoenix.Endpoint.Supervisor.init/1884885 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead886 │887 57 │ Logger.warn(":instrumenters configuration for #{inspect(mod)} is deprecated and has no effect")888 │ ~889 │890 └─ lib/phoenix/endpoint/supervisor.ex:57:14: Phoenix.Endpoint.Supervisor.init/1891892 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead893 │894 78 │ Logger.warn """895 │ ~896 │897 └─ lib/phoenix/endpoint/supervisor.ex:78:14: Phoenix.Endpoint.Supervisor.pubsub_children/2898899 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead900 │901 264 │ Logger.warn("url: [host: ...] configuration value #{inspect(host)} for #{inspect(endpoint)} is invalid")902 │ ~903 │904 └─ lib/phoenix/endpoint/supervisor.ex:264:14: Phoenix.Endpoint.Supervisor.build_url/2905906 warning: unused require Phoenix.Endpoint907 │908 6 │ require Phoenix.Endpoint909 │ ~910 │911 └─ lib/phoenix/controller.ex:6:3912913 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 operator914 │915 46 │ <<prefix::binary-size(prefix_size), ^suffix::binary>> -> prefix916 │ ~917 │918 └─ lib/phoenix/naming.ex:46:29: Phoenix.Naming.unsuffix/2919920 warning: unused require Phoenix.Endpoint921 │922 19 │ require Phoenix.Endpoint923 │ ~924 │925 └─ lib/phoenix/endpoint/render_errors.ex:19:3926927 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.928929 This error happens when you have function calls without parentheses inside keywords. For example:930931 function(arg, one: nested_call a, b, c)932 function(arg, one: if expr, do: :this, else: :that)933934 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:935936 function(arg, one: if(expr, do: :this, else: :that))937 function(arg, one: nested_call(a, b, c))938939 Ambiguity found at:940 │941 71 │ unless actions -- supported_actions == [], do: raise ArgumentError, """942 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~943 │944 └─ lib/phoenix/router/resource.ex:71945946 warning: Logger.warn/1 is deprecated. Use Logger.warning/2 instead947 │948 653 │ Logger.warn fn -> "Ignoring unmatched topic \"#{topic}\" in #{inspect(socket.handler)}" end949 │ ~950 │951 └─ lib/phoenix/socket.ex:653:16: Phoenix.Socket.handle_in/4952953 warning: unused require Phoenix.Endpoint954 │955 6 │ require Phoenix.Endpoint956 │ ~957 │958 └─ lib/phoenix/channel/server.ex:6:3959960 warning: unused require Phoenix.Endpoint961 │962 192 │ require Phoenix.Endpoint963 │ ~964 │965 └─ lib/phoenix/socket.ex:192:3966967 warning: unused require Logger968 │969 93 │ require Logger970 │ ~971 │972 └─ lib/phoenix/token.ex:93:3973974 warning: comparison between distinct types found:975976 merge_all != []977978 given types:979980 dynamic(non_empty_list({atom(), term()})) != empty_list()981982 where "merge_all" was given the type:983984 # type: dynamic(non_empty_list({atom(), term()}))985 # from: lib/phoenix/router/route.ex:111:15986 merge_all = merge_params ++ merge_private ++ merge_assigns987988 While Elixir can compare across all types, you are comparing across types which are always disjoint, and the result is either always true or always false989990 type warning found at:991 │992 113 │ if merge_all != [] do993 │ ~994 │995 └─ lib/phoenix/router/route.ex:113:18: Phoenix.Router.Route.build_prepare/1996997 warning: a struct for Plug.Conn is expected on struct update:998999 %Plug.Conn{conn | state: :sent}10001001 but got type:10021003 dynamic()10041005 where "conn" was given the type:10061007 # type: dynamic()1008 # from: lib/phoenix/endpoint/render_errors.ex:57:171009 conn10101011 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10121013 type warning found at:1014 │1015 61 │ %Plug.Conn{conn | state: :sent}1016 │ ~1017 │1018 └─ lib/phoenix/endpoint/render_errors.ex:61:9: Phoenix.Endpoint.RenderErrors.__catch__/510191020 warning: a struct for Plug.Conn is expected on struct update:10211022 %Plug.Conn{conn | query_params: %{}, params: %{}}10231024 but got type:10251026 dynamic(%{..., params: %Plug.Conn.Unfetched{}})10271028 where "conn" was given the types:10291030 # type: dynamic(%{..., params: term()})1031 # from: lib/phoenix/endpoint/render_errors.ex:124:171032 conn.params10331034 # type: dynamic(%{..., params: %Plug.Conn.Unfetched{}})1035 # from: lib/phoenix/endpoint/render_errors.ex:124:171036 conn.params10371038 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10391040 type warning found at:1041 │1042 125 │ %Plug.Conn.Unfetched{} -> %Plug.Conn{conn | query_params: %{}, params: %{}}1043 │ ~1044 │1045 └─ lib/phoenix/endpoint/render_errors.ex:125:35: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110461047 warning: a struct for Plug.Conn is expected on struct update:10481049 %Plug.Conn{conn | query_params: %{}, params: params}10501051 but got type:10521053 dynamic(%{..., params: not %Plug.Conn.Unfetched{}})10541055 where "conn" was given the types:10561057 # type: dynamic(%{..., params: term()})1058 # from: lib/phoenix/endpoint/render_errors.ex:124:171059 conn.params10601061 # type: dynamic(%{..., params: not %Plug.Conn.Unfetched{}})1062 # from: lib/phoenix/endpoint/render_errors.ex:124:171063 conn.params10641065 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10661067 type warning found at:1068 │1069 126 │ params -> %Plug.Conn{conn | query_params: %{}, params: params}1070 │ ~1071 │1072 └─ lib/phoenix/endpoint/render_errors.ex:126:19: Phoenix.Endpoint.RenderErrors.maybe_fetch_query_params/110731074 warning: a struct for Plug.Conn is expected on struct update:10751076 %Plug.Conn{conn | params: params}10771078 but got type:10791080 dynamic(%{..., params: map()})10811082 where "conn" was given the type:10831084 # type: dynamic(%{..., params: map()})1085 # from: lib/phoenix/controller.ex:1036:171086 Map.get(conn.params, required_key)10871088 when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"10891090 type warning found at:1091 │1092 1043 │ %Plug.Conn{conn | params: params}1093 │ ~1094 │1095 └─ lib/phoenix/controller.ex:1043:5: Phoenix.Controller.scrub_params/210961097 warning: incompatible types given to socket_children/1:10981099 socket_children(mod)11001101 given types:11021103 -dynamic(atom())-11041105 but expected one of:11061107 %{..., __sockets__: term()}11081109 where "mod" was given the types:11101111 # type: dynamic(atom() or binary())1112 # from: lib/phoenix/endpoint/supervisor.ex:27:411113 defaults(otp_app, mod)11141115 # type: dynamic(atom())1116 # from: lib/phoenix/endpoint/supervisor.ex:31:161117 mod.init(:supervisor, env_conf)11181119 type warning found at:1120 │1121 67 │ socket_children(mod) ++1122 │ ~1123 │1124 └─ lib/phoenix/endpoint/supervisor.ex:67:7: Phoenix.Endpoint.Supervisor.init/111251126 warning: expected a module (an atom) when invoking compress_file/2 in expression:11271128 compressor.compress_file(file.digested_filename, file.digested_content)11291130 where "compressor" was given the type:11311132 # type: dynamic(%{..., file_extensions: non_empty_list(term(), term())})1133 # from: lib/phoenix/digester.ex:167:281134 [file_extension | _] = compressor.file_extensions11351136 where "file" was given the type:11371138 # type: dynamic(%{..., relative_path: term()})1139 # from: lib/phoenix/digester.ex:161:171140 Path.join(output_path, file.relative_path)11411142 type warning found at:1143 │1144 170 │ compressor.compress_file(file.digested_filename, file.digested_content) do1145 │ ~1146 │1147 └─ lib/phoenix/digester.ex:170:25: Phoenix.Digester.write_to_disk/211481149Generated phoenix app1150==> phoenix_live_view1151Compiling 55 files (.ex)1152Generated phoenix_live_view app1153==> phoenix_live_dashboard1154Compiling 36 files (.ex)1155 warning: Postgrex.Interval.to_string/1 is undefined (module Postgrex.Interval is not available or is yet to be defined)1156 │1157 326 │ do: struct.to_string(value)1158 │ ~1159 │1160 └─ lib/phoenix/live_dashboard/pages/ecto_stats_page.ex:326:16: Phoenix.LiveDashboard.EctoStatsPage.format/211611162Generated phoenix_live_dashboard app1163warning: Phoenix now requires you to explicitly list which engine to use1164for Phoenix JSON encoding. We recommend everyone to upgrade to1165Jason by setting in your config/config.exs:11661167 config :phoenix, :json_library, Jason11681169And then adding {:jason, "~> 1.0"} as a dependency.11701171If instead you would rather continue using Poison, then add to1172your config/config.exs:11731174 config :phoenix, :json_library, Poison11751176 (phoenix 1.6.17) lib/phoenix.ex:56: Phoenix.start/21177 (kernel 11.0.4) application_master.erl:299: :application_master.start_it_old/411781179warning: the :gettext compiler is no longer required in your mix.exs.11801181Please find the following line in your mix.exs and remove the :gettext entry:11821183 compilers: [..., :gettext, ...] ++ Mix.compilers(),11841185 (gettext 0.26.2) lib/mix/tasks/compile.gettext.ex:5: Mix.Tasks.Compile.Gettext.run/11186 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/51187 (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/21188 (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/41189 (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/21190 (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/511911192==> humo1193Compiling 42 files (.ex)1194 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.11951196 This error happens when you have function calls without parentheses inside keywords. For example:11971198 function(arg, one: nested_call a, b, c)1199 function(arg, one: if expr, do: :this, else: :that)12001201 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12021203 function(arg, one: if(expr, do: :this, else: :that))1204 function(arg, one: nested_call(a, b, c))12051206 Ambiguity found at:1207 │1208 47 │ raise ArgumentError,1209 │ ~~~~~~~~~~~~~~~~~~~~1210 │1211 └─ lib/humo/warehouse.ex:4712121213 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12141215 This error happens when you have function calls without parentheses inside keywords. For example:12161217 function(arg, one: nested_call a, b, c)1218 function(arg, one: if expr, do: :this, else: :that)12191220 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12211222 function(arg, one: if(expr, do: :this, else: :that))1223 function(arg, one: nested_call(a, b, c))12241225 Ambiguity found at:1226 │1227 56 │ raise ArgumentError,1228 │ ~~~~~~~~~~~~~~~~~~~~1229 │1230 └─ lib/humo/warehouse.ex:5612311232 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12331234 This error happens when you have function calls without parentheses inside keywords. For example:12351236 function(arg, one: nested_call a, b, c)1237 function(arg, one: if expr, do: :this, else: :that)12381239 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12401241 function(arg, one: if(expr, do: :this, else: :that))1242 function(arg, one: nested_call(a, b, c))12431244 Ambiguity found at:1245 │1246 63 │ raise ArgumentError,1247 │ ~~~~~~~~~~~~~~~~~~~~1248 │1249 └─ lib/humo/warehouse.ex:6312501251 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12521253 This error happens when you have function calls without parentheses inside keywords. For example:12541255 function(arg, one: nested_call a, b, c)1256 function(arg, one: if expr, do: :this, else: :that)12571258 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12591260 function(arg, one: if(expr, do: :this, else: :that))1261 function(arg, one: nested_call(a, b, c))12621263 Ambiguity found at:1264 │1265 72 │ raise ArgumentError,1266 │ ~~~~~~~~~~~~~~~~~~~~1267 │1268 └─ lib/humo/warehouse.ex:7212691270 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12711272 This error happens when you have function calls without parentheses inside keywords. For example:12731274 function(arg, one: nested_call a, b, c)1275 function(arg, one: if expr, do: :this, else: :that)12761277 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12781279 function(arg, one: if(expr, do: :this, else: :that))1280 function(arg, one: nested_call(a, b, c))12811282 Ambiguity found at:1283 │1284 80 │ raise ArgumentError,1285 │ ~~~~~~~~~~~~~~~~~~~~1286 │1287 └─ lib/humo/warehouse.ex:8012881289 warning: missing parentheses for expression following "do:" keyword. Parentheses are required to solve ambiguity inside keywords.12901291 This error happens when you have function calls without parentheses inside keywords. For example:12921293 function(arg, one: nested_call a, b, c)1294 function(arg, one: if expr, do: :this, else: :that)12951296 In the examples above, we don't know if the arguments "b" and "c" apply to the function "function" or "nested_call". Or if the keywords "do" and "else" apply to the function "function" or "if". You can solve this by explicitly adding parentheses:12971298 function(arg, one: if(expr, do: :this, else: :that))1299 function(arg, one: nested_call(a, b, c))13001301 Ambiguity found at:1302 │1303 79 │ unless is_binary(action), do:1304 │ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1305 │1306 └─ lib/humo/warehouse.ex:79130713081309== Compilation error in file lib/humo/repo.ex ==1310** (ArgumentError) could not fetch application environment Humo.Repo for application :humo because the application was not loaded nor configured1311 (elixir 1.20.3) lib/application.ex:642: Application.compile_env!/31312 lib/humo/repo.ex:4: (module)1313could not compile dependency :humo, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile humo --force", update it with "mix deps.update humo" or clean it with "mix deps.clean humo"