allowed_hosts

Build log

nerves_system_mangopi_mq_pro

allowed_hosts 0.1.2 · fail · run allowed_hosts-0.1.2-1789676894895
660 of 660 lines
1Resolving Hex dependencies...2Resolution completed in 0.509s3Unchanged:4  allowed_hosts 0.1.25  circular_buffer 1.1.06  cowboy 2.19.07  cowlib 2.20.0 VULNERABLE!8    EEF-CVE-2026-43966 (MEDIUM)9    aka: CVE-2026-43966, GHSA-w4f7-4cxr-rv3c10    HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/211    https://osv.dev/vulnerability/EEF-CVE-2026-439661213    EEF-CVE-2026-43969 (LOW)14    aka: CVE-2026-43969, GHSA-g2wm-735q-3f5615    Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/116    https://osv.dev/vulnerability/EEF-CVE-2026-4396917  elixir_make 0.10.018  interactive_cmd 0.1.419  jason 1.4.520  mime 1.6.021  nerves 1.15.022  nerves_discovery 0.1.523  nerves_logging 0.2.424  nerves_runtime 0.13.1325  nerves_system_bbb 2.30.226  nerves_system_br 1.34.427  nerves_system_mangopi_mq_pro 0.17.228  nerves_system_qemu_aarch64 0.4.229  nerves_system_rpi 2.1.230  nerves_system_rpi0 2.1.231  nerves_system_rpi0_2 2.1.232  nerves_system_rpi2 2.1.233  nerves_system_rpi3 2.1.234  nerves_system_rpi4 2.1.235  nerves_system_rpi5 2.1.236  nerves_system_x86_64 1.34.237  nerves_toolchain_aarch64_nerves_linux_gnu 15.3.138  nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.139  nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.140  nerves_toolchain_riscv64_nerves_linux_gnu 15.3.141  nerves_toolchain_x86_64_nerves_linux_musl 15.3.142  nerves_uevent 0.1.743  plug 1.8.3 VULNERABLE!44    EEF-CVE-2026-8468 (HIGH)45    aka: CVE-2026-8468, GHSA-468c-vq7p-gh6446    Unbounded buffer accumulation in multipart header parsing causes denial of service in plug47    https://osv.dev/vulnerability/EEF-CVE-2026-84684849    EEF-CVE-2026-56814 (MEDIUM)50    aka: CVE-2026-56814, GHSA-95qv-c9g9-rm6351    Plug: multipart :length limit is not charged for part headers, enabling unbounded temp-file creation (denial of service)52    https://osv.dev/vulnerability/EEF-CVE-2026-568145354    EEF-CVE-2026-56813 (LOW)55    aka: CVE-2026-56813, GHSA-wpmj-jh88-rpgm56    Cookie attribute injection in Plug.Conn.Cookies.encode/257    https://osv.dev/vulnerability/EEF-CVE-2026-5681358  plug_crypto 1.2.559  property_table 0.3.460  ranch 2.3.061  ring_logger 0.11.762  shoehorn 0.9.363  tablet 0.3.364  toolshed 0.5.065  uboot_env 1.0.266* Getting allowed_hosts (Hex package)67* Getting nerves (Hex package)68* Getting shoehorn (Hex package)69* Getting ring_logger (Hex package)70* Getting toolshed (Hex package)71* Getting nerves_runtime (Hex package)72* Getting nerves_system_bbb (Hex package)73* Getting nerves_system_mangopi_mq_pro (Hex package)74* Getting nerves_system_qemu_aarch64 (Hex package)75* Getting nerves_system_rpi (Hex package)76* Getting nerves_system_rpi0 (Hex package)77* Getting nerves_system_rpi0_2 (Hex package)78* Getting nerves_system_rpi2 (Hex package)79* Getting nerves_system_rpi3 (Hex package)80* Getting nerves_system_rpi4 (Hex package)81* Getting nerves_system_rpi5 (Hex package)82* Getting nerves_system_x86_64 (Hex package)83* Getting nerves_system_br (Hex package)84* Getting nerves_toolchain_x86_64_nerves_linux_musl (Hex package)85* Getting nerves_toolchain_aarch64_nerves_linux_gnu (Hex package)86* Getting nerves_toolchain_armv7_nerves_linux_gnueabihf (Hex package)87* Getting nerves_toolchain_armv6_nerves_linux_gnueabihf (Hex package)88* Getting nerves_toolchain_riscv64_nerves_linux_gnu (Hex package)89* Getting nerves_logging (Hex package)90* Getting nerves_uevent (Hex package)91* Getting uboot_env (Hex package)92* Getting elixir_make (Hex package)93* Getting property_table (Hex package)94* Getting circular_buffer (Hex package)95* Getting interactive_cmd (Hex package)96* Getting jason (Hex package)97* Getting nerves_discovery (Hex package)98* Getting tablet (Hex package)99* Getting cowboy (Hex package)100* Getting plug (Hex package)101* Getting mime (Hex package)102* Getting plug_crypto (Hex package)103* Getting cowlib (Hex package)104* Getting ranch (Hex package)105Found packages with security advisories, see above for details106You have added/upgraded packages you could sponsor, run `mix hex.sponsor` to learn more107==> jason108Compiling 10 files (.ex)109Generated jason app110==> tablet111Compiling 2 files (.ex)112Generated tablet app113==> elixir_make114Compiling 8 files (.ex)115Generated elixir_make app116==> nerves_discovery117Compiling 5 files (.ex)118Generated nerves_discovery app119==> interactive_cmd120Compiling 1 file (.ex)121Generated interactive_cmd app122==> nerves123HOST_CC port.o124HOST_LD port125Compiling 55 files (.ex)126Generated nerves app127==> nerves_compatibility_test128129Nerves environment130  MIX_TARGET:   mangopi_mq_pro131  MIX_ENV:      prod132133Checking for prebuilt Nerves artifacts...134  Found nerves_system_mangopi_mq_pro in cache135    /home/nerves/.nerves/artifacts/nerves_system_mangopi_mq_pro-portable-0.17.2136  Found nerves_toolchain_riscv64_nerves_linux_gnu in cache137    /home/nerves/.nerves/artifacts/nerves_toolchain_riscv64_nerves_linux_gnu-linux_x86_64-15.3.1138==> jason139Compiling 10 files (.ex)140Generated jason app141==> tablet142Compiling 2 files (.ex)143Generated tablet app144==> elixir_make145Compiling 8 files (.ex)146Generated elixir_make app147==> nerves_discovery148Compiling 5 files (.ex)149Generated nerves_discovery app150==> interactive_cmd151Compiling 1 file (.ex)152Generated interactive_cmd app153==> nerves154HOST_CC port.o155HOST_LD port156Compiling 55 files (.ex)157Generated nerves app158==> nerves_system_br159Generated nerves_system_br app160==> nerves_toolchain_riscv64_nerves_linux_gnu161Compiling 1 file (.ex)162Generated nerves_toolchain_riscv64_nerves_linux_gnu app163==> nerves_system_mangopi_mq_pro164Generated nerves_system_mangopi_mq_pro app165==> nerves_compatibility_test166167Nerves environment168  MIX_TARGET:   mangopi_mq_pro169  MIX_ENV:      prod170171==> mime172Compiling 2 files (.ex)173Generated mime app174==> circular_buffer175Compiling 1 file (.ex)176Generated circular_buffer app177==> plug_crypto178Compiling 5 files (.ex)179Generated plug_crypto app180==> nerves_compatibility_test181===> Analyzing applications...182===> Compiling ranch183==> nerves_logging184 CC kmsg_tailer.o185 LD kmsg_tailer186Compiling 5 files (.ex)187Generated nerves_logging app188==> nerves_compatibility_test189===> Analyzing applications...190===> Compiling cowlib191==> ring_logger192Compiling 7 files (.ex)193Generated ring_logger app194==> shoehorn195Compiling 8 files (.ex)196Generated shoehorn app197==> nerves_compatibility_test198===> Analyzing applications...199===> Compiling cowboy200==> plug201Compiling 1 file (.erl)202warning: "xref: [exclude: ...]" in your mix.exs file is deprecated, instead use: "elixirc_options: [no_warn_undefined: ...]"203  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:243: Mix.Tasks.Compile.Elixir.xref_exclude_opts/2204  (mix 1.20.3) lib/mix/tasks/compile.elixir.ex:142: Mix.Tasks.Compile.Elixir.run/1205  (mix 1.20.3) lib/mix/task.ex:502: anonymous fn/3 in Mix.Task.run_task/5206  (mix 1.20.3) lib/mix/task.compiler.ex:299: Mix.Task.Compiler.run_compiler/2207  (mix 1.20.3) lib/mix/task.compiler.ex:287: Mix.Task.Compiler.run/4208  (mix 1.20.3) lib/mix/tasks/compile.all.ex:75: Mix.Tasks.Compile.All.do_run/2209210Compiling 39 files (.ex)211     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 352 │     generated? = :erlang.system_info(:otp_release) >= '19'217     │                                                       ~218     │219     └─ lib/plug/builder.ex:352:55220221    warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead222    │223  6 │   custom_statuses = Application.get_env(:plug, :statuses, %{})224    │                                 ~225    │226    └─ lib/plug/conn/status.ex:6:33: Plug.Conn.Status (module)227228     warning: unused require Bitwise229     │230 101 │   require Bitwise231     │   ~232     │233     └─ lib/plug/csrf_protection.ex:101:3234235    warning: Application.get_env/2 is discouraged in the module body, use Application.compile_env/3 instead236    │237  4 │   if Application.get_env(:plug, :mimes) do238    │                  ~239    │240    └─ lib/plug/mime.ex:4:18: Plug.MIME (module)241242    warning: unused require Logger243    │244 34 │   require Logger245    │   ~246    │247    └─ lib/plug/request_id.ex:34:3248249    warning: using single-quoted strings to represent charlists is deprecated.250    Use ~c"" if you indeed want a charlist or use "" instead.251    You may run "mix format --migrate" to change all single-quoted252    strings to use the ~c sigil and fix this warning.253    │254 65 │     'ECDHE-RSA-AES256-GCM-SHA384',255    │     ~256    │257    └─ lib/plug/ssl.ex:65:5258259    warning: using single-quoted strings to represent charlists is deprecated.260    Use ~c"" if you indeed want a charlist or use "" instead.261    You may run "mix format --migrate" to change all single-quoted262    strings to use the ~c sigil and fix this warning.263    │264 66 │     'ECDHE-ECDSA-AES256-GCM-SHA384',265    │     ~266    │267    └─ lib/plug/ssl.ex:66:5268269    warning: using single-quoted strings to represent charlists is deprecated.270    Use ~c"" if you indeed want a charlist or use "" instead.271    You may run "mix format --migrate" to change all single-quoted272    strings to use the ~c sigil and fix this warning.273    │274 67 │     'ECDHE-RSA-AES128-GCM-SHA256',275    │     ~276    │277    └─ lib/plug/ssl.ex:67:5278279    warning: using single-quoted strings to represent charlists is deprecated.280    Use ~c"" if you indeed want a charlist or use "" instead.281    You may run "mix format --migrate" to change all single-quoted282    strings to use the ~c sigil and fix this warning.283    │284 68 │     'ECDHE-ECDSA-AES128-GCM-SHA256',285    │     ~286    │287    └─ lib/plug/ssl.ex:68:5288289    warning: using single-quoted strings to represent charlists is deprecated.290    Use ~c"" if you indeed want a charlist or use "" instead.291    You may run "mix format --migrate" to change all single-quoted292    strings to use the ~c sigil and fix this warning.293    │294 69 │     'DHE-RSA-AES256-GCM-SHA384',295    │     ~296    │297    └─ lib/plug/ssl.ex:69:5298299    warning: using single-quoted strings to represent charlists is deprecated.300    Use ~c"" if you indeed want a charlist or use "" instead.301    You may run "mix format --migrate" to change all single-quoted302    strings to use the ~c sigil and fix this warning.303    │304 70 │     'DHE-RSA-AES128-GCM-SHA256'305    │     ~306    │307    └─ lib/plug/ssl.ex:70:5308309    warning: using single-quoted strings to represent charlists is deprecated.310    Use ~c"" if you indeed want a charlist or use "" instead.311    You may run "mix format --migrate" to change all single-quoted312    strings to use the ~c sigil and fix this warning.313    │314 74 │     'ECDHE-RSA-AES256-GCM-SHA384',315    │     ~316    │317    └─ lib/plug/ssl.ex:74:5318319    warning: using single-quoted strings to represent charlists is deprecated.320    Use ~c"" if you indeed want a charlist or use "" instead.321    You may run "mix format --migrate" to change all single-quoted322    strings to use the ~c sigil and fix this warning.323    │324 75 │     'ECDHE-ECDSA-AES256-GCM-SHA384',325    │     ~326    │327    └─ lib/plug/ssl.ex:75:5328329    warning: using single-quoted strings to represent charlists is deprecated.330    Use ~c"" if you indeed want a charlist or use "" instead.331    You may run "mix format --migrate" to change all single-quoted332    strings to use the ~c sigil and fix this warning.333    │334 76 │     'ECDHE-RSA-AES128-GCM-SHA256',335    │     ~336    │337    └─ lib/plug/ssl.ex:76:5338339    warning: using single-quoted strings to represent charlists is deprecated.340    Use ~c"" if you indeed want a charlist or use "" instead.341    You may run "mix format --migrate" to change all single-quoted342    strings to use the ~c sigil and fix this warning.343    │344 77 │     'ECDHE-ECDSA-AES128-GCM-SHA256',345    │     ~346    │347    └─ lib/plug/ssl.ex:77:5348349    warning: using single-quoted strings to represent charlists is deprecated.350    Use ~c"" if you indeed want a charlist or use "" instead.351    You may run "mix format --migrate" to change all single-quoted352    strings to use the ~c sigil and fix this warning.353    │354 78 │     'DHE-RSA-AES256-GCM-SHA384',355    │     ~356    │357    └─ lib/plug/ssl.ex:78:5358359    warning: using single-quoted strings to represent charlists is deprecated.360    Use ~c"" if you indeed want a charlist or use "" instead.361    You may run "mix format --migrate" to change all single-quoted362    strings to use the ~c sigil and fix this warning.363    │364 79 │     'DHE-RSA-AES128-GCM-SHA256',365    │     ~366    │367    └─ lib/plug/ssl.ex:79:5368369    warning: using single-quoted strings to represent charlists is deprecated.370    Use ~c"" if you indeed want a charlist or use "" instead.371    You may run "mix format --migrate" to change all single-quoted372    strings to use the ~c sigil and fix this warning.373    │374 80 │     'ECDHE-RSA-AES256-SHA384',375    │     ~376    │377    └─ lib/plug/ssl.ex:80:5378379    warning: using single-quoted strings to represent charlists is deprecated.380    Use ~c"" if you indeed want a charlist or use "" instead.381    You may run "mix format --migrate" to change all single-quoted382    strings to use the ~c sigil and fix this warning.383    │384 81 │     'ECDHE-ECDSA-AES256-SHA384',385    │     ~386    │387    └─ lib/plug/ssl.ex:81:5388389    warning: using single-quoted strings to represent charlists is deprecated.390    Use ~c"" if you indeed want a charlist or use "" instead.391    You may run "mix format --migrate" to change all single-quoted392    strings to use the ~c sigil and fix this warning.393    │394 82 │     'ECDHE-RSA-AES128-SHA256',395    │     ~396    │397    └─ lib/plug/ssl.ex:82:5398399    warning: using single-quoted strings to represent charlists is deprecated.400    Use ~c"" if you indeed want a charlist or use "" instead.401    You may run "mix format --migrate" to change all single-quoted402    strings to use the ~c sigil and fix this warning.403    │404 83 │     'ECDHE-ECDSA-AES128-SHA256',405    │     ~406    │407    └─ lib/plug/ssl.ex:83:5408409    warning: using single-quoted strings to represent charlists is deprecated.410    Use ~c"" if you indeed want a charlist or use "" instead.411    You may run "mix format --migrate" to change all single-quoted412    strings to use the ~c sigil and fix this warning.413    │414 84 │     'DHE-RSA-AES256-SHA256',415    │     ~416    │417    └─ lib/plug/ssl.ex:84:5418419    warning: using single-quoted strings to represent charlists is deprecated.420    Use ~c"" if you indeed want a charlist or use "" instead.421    You may run "mix format --migrate" to change all single-quoted422    strings to use the ~c sigil and fix this warning.423    │424 85 │     'DHE-RSA-AES128-SHA256',425    │     ~426    │427    └─ lib/plug/ssl.ex:85:5428429    warning: using single-quoted strings to represent charlists is deprecated.430    Use ~c"" if you indeed want a charlist or use "" instead.431    You may run "mix format --migrate" to change all single-quoted432    strings to use the ~c sigil and fix this warning.433    │434 86 │     'ECDHE-RSA-AES256-SHA',435    │     ~436    │437    └─ lib/plug/ssl.ex:86:5438439    warning: using single-quoted strings to represent charlists is deprecated.440    Use ~c"" if you indeed want a charlist or use "" instead.441    You may run "mix format --migrate" to change all single-quoted442    strings to use the ~c sigil and fix this warning.443    │444 87 │     'ECDHE-ECDSA-AES256-SHA',445    │     ~446    │447    └─ lib/plug/ssl.ex:87:5448449    warning: using single-quoted strings to represent charlists is deprecated.450    Use ~c"" if you indeed want a charlist or use "" instead.451    You may run "mix format --migrate" to change all single-quoted452    strings to use the ~c sigil and fix this warning.453    │454 88 │     'ECDHE-RSA-AES128-SHA',455    │     ~456    │457    └─ lib/plug/ssl.ex:88:5458459    warning: using single-quoted strings to represent charlists is deprecated.460    Use ~c"" if you indeed want a charlist or use "" instead.461    You may run "mix format --migrate" to change all single-quoted462    strings to use the ~c sigil and fix this warning.463    │464 89 │     'ECDHE-ECDSA-AES128-SHA'465    │     ~466    │467    └─ lib/plug/ssl.ex:89:5468469    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead470    │471 45 │         reraise e, System.stacktrace()472    │                           ~473    │474    └─ lib/plug/parsers/multipart.ex:45:27: Plug.Parsers.MULTIPART.parse/5475    └─ lib/plug/parsers/multipart.ex:49:73: Plug.Parsers.MULTIPART.parse/5476477     warning: the following clause will never match:478479         {:error, reason} ->480481     because it attempts to match on the result of:482483         IO.binwrite(device, contents)484485     which has type:486487         dynamic(not {:error, term()})488489     type warning found at:490     │491 171 │       {:error, reason} ->492     │       ~~~~~~~~~~~~~~~~~~~493     │494     └─ lib/plug/parsers/multipart.ex:171: Plug.Parsers.MULTIPART.binwrite!/2495496    warning: Supervisor.Spec.worker/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead497    │498 12 │       worker(Plug.Upload, [])499    │       ~500    │501    └─ lib/plug/supervisor.ex:12:7: Plug.Supervisor.init/1502503    warning: Supervisor.Spec.supervise/2 is deprecated. Use the new child specifications outlined in the Supervisor module instead504    │505 16 │     supervise(children, strategy: :one_for_one)506    │     ~507    │508    └─ lib/plug/supervisor.ex:16:5: Plug.Supervisor.init/1509510     warning: Plug.Crypto.safe_binary_to_term/1 is deprecated. Use non_executable_binary_to_term/2511     │512 134 │        Plug.Crypto.safe_binary_to_term(binary)513     │                    ~514     │515     └─ lib/plug/session/cookie.ex:134:20: Plug.Session.COOKIE.decode/3516517     warning: Macro.to_string/2 is deprecated. Use Macro.to_string/1 instead518     │519 360 │           "#{kind} " <> Macro.to_string(code, &clause_match/2)520     │                               ~521     │522     └─ lib/plug/debugger.ex:360:31: Plug.Debugger.get_clauses/3523524    warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)525    │526 45 │     unless Code.ensure_compiled?(module) and function_exported?(module, fun, arity) do527    │                 ~528    │529    └─ lib/plug/parsers/json.ex:45:17: Plug.Parsers.JSON.validate_decoder!/1530    └─ lib/plug/parsers/json.ex:53:17: Plug.Parsers.JSON.validate_decoder!/1531532     warning: Code.ensure_compiled?/1 is deprecated. Use Code.ensure_compiled/1 instead (see the proper disclaimers in its docs)533     │534 244 │       if Code.ensure_compiled?(module) and function_exported?(module, :init, 1) do535     │               ~536     │537     └─ lib/plug/parsers.ex:244:15: Plug.Parsers.convert_parsers/2538539    warning: MIME.valid?/1 is deprecated. Use MIME.extensions(type) != [] instead540    │541 32 │     MIME.valid?(type)542    │          ~543    │544    └─ lib/plug/mime.ex:32:10: Plug.MIME.valid?/1545546    warning: System.stacktrace/0 is deprecated. Use __STACKTRACE__ instead547    │548 23 │     reraise(conn, kind, reason, System.stacktrace())549    │                                        ~550    │551    └─ lib/plug/conn/wrapper_error.ex:23:40: Plug.Conn.WrapperError.reraise/3552553    warning: a struct for Plug.Conn is expected on struct update:554555        %Plug.Conn{556          conn557          | adapter: {Plug.Adapters.Test.Conn, state},558            host: uri.host || conn.host || "www.example.com",559            method: method,560            owner: owner,561            path_info: split_path(uri.path),562            port: uri.port || 80,563            remote_ip: conn.remote_ip || {127, 0, 0, 1},564            req_headers: req_headers,565            request_path: uri.path,566            query_string: query,567            body_params: body_params || %Plug.Conn.Unfetched{aspect: :body_params},568            params: params || %Plug.Conn.Unfetched{aspect: :params},569            scheme: String.to_atom(String.downcase(uri.scheme || "http"))570        }571572    but got type:573574        dynamic(%{..., adapter: {atom(), term()}, req_headers: term()})575576    where "conn" was given the types:577578        # type: dynamic(%{..., req_headers: term()})579        # from: lib/plug/adapters/test/conn.ex:16:7580        body_or_params(body_or_params, query, conn.req_headers)581582        # type: dynamic(%{..., adapter: {atom(), term()}, req_headers: term()})583        # from: lib/plug/adapters/test/conn.ex:25:22584        get_from_adapter(conn, :get_http_protocol, :"HTTP/1.1")585586    when defining the variable "conn", you must also pattern match on "%Plug.Conn{}"587588    type warning found at:589    │590 34 │     %Plug.Conn{591    │     ~592    │593    └─ lib/plug/adapters/test/conn.ex:34:5: Plug.Adapters.Test.Conn.conn/4594595Generated plug app596==> allowed_hosts597Compiling 1 file (.ex)598warning: cannot infer signatures from :cowboy because it is not loaded599600warning: cannot infer signatures from :cowlib because it is not loaded601602warning: cannot infer signatures from :ranch because it is not loaded603604Generated allowed_hosts app605==> uboot_env606Compiling 5 files (.ex)607Generated uboot_env app608==> property_table609Compiling 8 files (.ex)610Generated property_table app611==> nerves_uevent612 CC uevent.o613 LD uevent614Compiling 5 files (.ex)615Generated nerves_uevent app616==> nerves_runtime617Compiling 14 files (.ex)618Generated nerves_runtime app619==> toolshed620Compiling 5 files (.ex)621Generated toolshed app622==> nerves_compatibility_test623Compiling 2 files (.ex)624Generated nerves_compatibility_test app625|nerves| Building OTP Release...626627* [Nerves] validating vm.args628* skipping runtime configuration (config/runtime.exs not found)629* creating _build/mangopi_mq_pro/rel/nerves_compatibility_test/releases/0.1.0/vm.args630Updating base firmware image with Erlang release...631Copying rootfs_overlay: /work/proj/_build/mangopi_mq_pro/nerves/rootfs_overlay632Copying rootfs_overlay: /work/proj/rootfs_overlay633Building /work/proj/_build/mangopi_mq_pro/nerves/images/nerves_compatibility_test.fw...634Firmware UUID: fan-release (50c73617-5ad1-5854-63de-b99b3ebf9ed6)635Firmware built successfully! 🎉636637Now you may install it to a MicroSD card using `mix burn` or upload it638to a device with `mix upload` or `mix firmware.gen.script`+`./upload.sh`.639640==> nerves641==> nerves_compatibility_test642643Nerves environment644  MIX_TARGET:   mangopi_mq_pro645  MIX_ENV:      prod646647==> allowed_hosts648Compiling 1 file (.ex)649    error: module Plug.Conn is not loaded and could not be found650    │651 12 │   import Plug.Conn, only: [send_resp: 3, halt: 1]652    │   ^653    │654    └─ lib/allowed_hosts.ex:12:3: AllowedHosts (module)655656657== Compilation error in file lib/allowed_hosts.ex ==658** (CompileError) lib/allowed_hosts.ex: cannot compile module AllowedHosts (errors have been logged)659660could not compile dependency :allowed_hosts, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile allowed_hosts --force", update it with "mix deps.update allowed_hosts" or clean it with "mix deps.clean allowed_hosts"