Warnings
Non-fatal quality signals detected by the BEAM scanner. These packages compile and pass — but use patterns worth knowing about for Nerves firmware (reproducibility, runtime behavior, host-tool dependencies).
Calls :erlang.halt / System.halt
20 packages
Package code calls into a function that halts the BEAM VM. On a Nerves device that means the firmware reboots — usually surprising unless this is intentionally a reboot helper.
Show 20 affected packages
amoc
@4.1.0
appsignal
@2.17.0
igniter
@0.7.9
inets
@9.6.2
kernel
@10.6.2
nerves_hub_cli
@2.1.0
Elixir.Mix.NervesHubCLI.Shell Elixir.System:halt/1
Elixir.NervesHubCLI.CLI.Shell Elixir.System:halt/1
phoenix
@1.8.5
phoenix_kit
@1.7.98
quic
@1.1.0
quic_h3_client erlang:halt/1
quic_h3_server erlang:halt/1
quic_interop_client erlang:halt/1
req_llm
@1.10.0
stdlib
@7.3
tools
@4.1.4
torngen
@0.1.10
zen_websocket
@0.4.2
Non-deterministic build
15 packages
Repeated builds of this package's source produced different binaries — its compiled output isn't reproducible. Breaks firmware-image determinism (you can't audit that two builds of the same source produced the same firmware) and complicates debugging.
Show 15 affected packages
Uses System.shell / :os.cmd
7 packages
Spawns a shell to run commands (System.shell/:os.cmd), as opposed to executing a binary directly with Port.open/System.cmd. Brittle — the target shell may not exist or behave like the dev host — and a shell-injection surface for any user-provided arguments.
Show 7 affected packages
Writes to its source directory during build
1 package
The package's build step wrote files into `deps//` (its own source tree) rather than staying inside `MIX_BUILD_PATH`. Bad form on Nerves because those stray artifacts persist across `MIX_TARGET` switches — a NIF compiled for rpi4 stays in source and breaks the x86_64 build that follows.
Show 1 affected package
lumis
@0.4.0
priv/native/liblumis_nif-v0.4.0-nif-2.15-riscv64gc-unknown-linux-gnu.so
priv/native/liblumis_nif-v0.4.0-nif-2.15-x86_64-unknown-linux-musl.so