Experimental: Compatibility results are generated automatically and may be wrong. Spot a problem? Open an issue on GitHub.

Failure clusters

Every failing system-result grouped by the root-cause signature found in its build log. Clusters are ranked by count — fixing the cluster at the top unblocks the most packages at once.

NIF built for wrong architecture (scrub-otp)
140 failures · 69 packages
A dependency's NIF .so was compiled against the host architecture, not the Nerves target — Nerves' scrub-otp step rejects it at firmware-build time. Usually fixable by forcing a clean rebuild of the dep for the target.
Affecting nerves_system_mangopi_mq_pro nerves_system_rpi4 nerves_system_x86_64 · NIF language breakdown: c × 14 rust × 7 zig × 1
Show 140 affected packages
alike riscv64
alike x86_64
amp_sdk riscv64
amp_sdk x86_64
appsignal riscv64 c
appsignal x86_64 c
arke_auth riscv64
arke_auth x86_64
arke_server riscv64
arke_server x86_64
ash_appsignal riscv64
ash_appsignal x86_64
bash riscv64
bash arm64
bash x86_64
bin_class x86_64
brod riscv64
brod x86_64
codex_sdk riscv64
codex_sdk x86_64
command riscv64
command x86_64
drum riscv64
drum x86_64
electric riscv64
electric x86_64
elixir_ale riscv64
elixir_ale x86_64
ex_alp x86_64 c
ex_cmd riscv64
ex_cmd arm64
ex_cmd x86_64
ex_maude arm64 rust
ex_maude x86_64 rust
ex_mgrs arm64 rust
ffmpex riscv64
ffmpex arm64
ffmpex x86_64
gemini_cli_sdk riscv64
ghostty arm64 zig
grovepi riscv64
grovepi x86_64
icp_agent riscv64
icp_agent x86_64
kafka_protocol riscv64
kayrock riscv64
kayrock x86_64
llama_cpp_sdk riscv64
llama_cpp_sdk x86_64
lumis riscv64 rust
lumis x86_64 rust
marcli riscv64
marcli x86_64
mdex riscv64 rust
mdex x86_64 rust
mdex_gfm riscv64
mdex_gfm x86_64
mdex_katex riscv64
mdex_katex x86_64
mquickjs_ex riscv64 c
mquickjs_ex x86_64 c
nerves_uart riscv64
nerves_uart x86_64
net_runner riscv64 c
net_runner x86_64 c
nous riscv64
nous x86_64
nx_highlighter riscv64
parrhesia riscv64
parrhesia x86_64
pg_inspect riscv64
pg_inspect arm64
pg_inspect x86_64
pg_query_ex riscv64 c
pg_query_ex x86_64 c
portfolio_coder riscv64
portfolio_index riscv64
prx riscv64
prx x86_64
ragex riscv64
ragex x86_64
rebar3_nova riscv64
rebar3_nova arm64
rebar3_nova x86_64
rocket riscv64 c
rocket x86_64 c
rtlsdr riscv64 c
rtlsdr arm64 c
rtlsdr x86_64 c
sayfa riscv64
sayfa x86_64
smee_orgs riscv64
smee_orgs arm64
smee_orgs x86_64
soothsayer x86_64
space_dust riscv64
space_dust x86_64
zee3 riscv64
zee3 arm64
zwo_controller riscv64
Representative log excerpt
* [Nerves] validating vm.args
* skipping runtime configuration (config/runtime.exs not found)
* creating _build/x86_64/rel/nerves_compatibility_test/releases/0.1.0/vm.args
Updating base firmware image with Erlang release...
scrub-otp-release.sh: ERROR: Unexpected executable format for '/work/proj/_build/x86_64/_nerves-tmp/rootfs_overlay/srv/erlang/lib/sgp4_ex-0.2.0/priv/sgp4_nif.so'

Got:
 readelf:AArch64;0x0

Expecting:
 readelf:Advanced Micro Devices X86-64;0x0

This file was compiled for the host or a different target and probably
will not work.

Check the following:

1. If this file comes from a library, that library may be compiling to
   its source directory under `deps`. Manually clean up the source
   directory and try building again.

2. Are you using a path dependency in your mix deps? If so, run
   'mix clean' in that directory to avoid pulling in any of its
   build products.

3. Did you recently upgrade or change your Nerves system? If so,
   try cleaning and rebuilding this project and its deps.

4. Are you building outside of Nerves' mix integration? If so,
   make sure that you've sourced 'nerves-env.sh'.

If you are very sure you know what you are doing, you may place an empty
file in the same directory as the offending file(s) called '.noscrub'.
This will explicitly disable scrubbing for that directory.

If you're still having trouble, please file an issue on Github
at https://github.com/nerves-project/nerves_system_br/issues.

Precompiled NIF missing for this target
71 failures · 48 packages
Package ships a Rustler/Zigler precompiled NIF but no build exists for the Nerves target triple. The package vendor would need to add the triple to their release.
Affecting nerves_system_mangopi_mq_pro nerves_system_x86_64 · NIF language breakdown: rust × 60 zig × 2
Show 71 affected packages
astrodynamics riscv64 rust
riscv64gc-unknown-linux-gnu
astrodynamics x86_64 rust
x86_64-unknown-linux-musl
baml_elixir riscv64 rust
riscv64gc-unknown-linux-gnu
bamlixir riscv64 rust
riscv64gc-unknown-linux-gnu
bin_class riscv64
riscv64gc-unknown-linux-gnu
cloaked_req riscv64 rust
riscv64gc-unknown-linux-gnu
cloaked_req x86_64 rust
x86_64-unknown-linux-musl
dither riscv64 rust
riscv64gc-unknown-linux-gnu
doc_redlines riscv64 rust
riscv64gc-unknown-linux-gnu
doc_redlines x86_64 rust
x86_64-unknown-linux-musl
domaintwistex riscv64 rust
riscv64gc-unknown-linux-gnu
domaintwistex x86_64 rust
x86_64-unknown-linux-musl
elaixir riscv64
riscv64gc-unknown-linux-gnu
ex_bic_exporter riscv64 rust
riscv64gc-unknown-linux-gnu
ex_gdal riscv64 rust
riscv64gc-unknown-linux-gnu
ex_maude riscv64 rust
riscv64gc-unknown-linux-gnu
ex_webauthn riscv64 rust
riscv64gc-unknown-linux-gnu
fred riscv64
riscv64gc-unknown-linux-gnu
ghostty riscv64 zig
riscv64gc-unknown-linux-gnu
ghostty x86_64 zig
x86_64-unknown-linux-musl
giocci riscv64
riscv64gc-unknown-linux-gnu
graphql_query riscv64 rust
riscv64gc-unknown-linux-gnu
hemmer riscv64 rust
riscv64gc-unknown-linux-gnu
hemmer x86_64 rust
x86_64-unknown-linux-musl
imprintor riscv64 rust
riscv64gc-unknown-linux-gnu
iroh_ex riscv64 rust
riscv64gc-unknown-linux-gnu
iroh_ex x86_64 rust
x86_64-unknown-linux-musl
javex riscv64 rust
riscv64gc-unknown-linux-gnu
javex x86_64 rust
x86_64-unknown-linux-musl
kreuzberg riscv64 rust
riscv64gc-unknown-linux-gnu
kreuzberg x86_64 rust
x86_64-unknown-linux-musl
kreuzcrawl riscv64 rust
riscv64gc-unknown-linux-gnu
kreuzcrawl x86_64 rust
x86_64-unknown-linux-musl
leidenfold riscv64 rust
riscv64gc-unknown-linux-gnu
leidenfold x86_64 rust
x86_64-unknown-linux-musl
lemma_engine riscv64 rust
riscv64gc-unknown-linux-gnu
lemma_engine x86_64 rust
x86_64-unknown-linux-musl
moss riscv64
riscv64gc-unknown-linux-gnu
moss x86_64
x86_64-unknown-linux-musl
moss_core riscv64 rust
riscv64gc-unknown-linux-gnu
moss_core x86_64 rust
x86_64-unknown-linux-musl
muninn riscv64 rust
riscv64gc-unknown-linux-gnu
oxc riscv64 rust
riscv64gc-unknown-linux-gnu
oxide_ex riscv64 rust
riscv64gc-unknown-linux-gnu
pcap_file_ex riscv64 rust
riscv64gc-unknown-linux-gnu
pcap_file_ex x86_64 rust
x86_64-unknown-linux-musl
postal riscv64 rust
riscv64gc-unknown-linux-gnu
postal x86_64 rust
x86_64-unknown-linux-musl
quickjs_ex riscv64 rust
riscv64gc-unknown-linux-gnu
quicksand riscv64 rust
riscv64gc-unknown-linux-gnu
quicksand x86_64 rust
x86_64-unknown-linux-musl
redlines riscv64 rust
riscv64gc-unknown-linux-gnu
redlines x86_64 rust
x86_64-unknown-linux-musl
rolyrine riscv64 rust
riscv64gc-unknown-linux-gnu
rolyrine x86_64 rust
x86_64-unknown-linux-musl
sigil_guard riscv64 rust
riscv64gc-unknown-linux-gnu
soothsayer riscv64
riscv64gc-unknown-linux-gnu
spark_ex riscv64
riscv64gc-unknown-linux-gnu
sql_parser_ex riscv64 rust
riscv64gc-unknown-linux-gnu
statsig_elixir riscv64 rust
riscv64gc-unknown-linux-gnu
tree_sitter_language_pack riscv64 rust
riscv64gc-unknown-linux-gnu
tree_sitter_language_pack x86_64 rust
x86_64-unknown-linux-musl
trigram riscv64 rust
riscv64gc-unknown-linux-gnu
trigram x86_64 rust
x86_64-unknown-linux-musl
typster riscv64 rust
riscv64gc-unknown-linux-gnu
typster x86_64 rust
x86_64-unknown-linux-musl
tyrex riscv64 rust
riscv64gc-unknown-linux-gnu
tyrex x86_64 rust
x86_64-unknown-linux-musl
vize riscv64 rust
riscv64gc-unknown-linux-gnu
yfinance riscv64
riscv64gc-unknown-linux-gnu
zenohex riscv64 rust
riscv64gc-unknown-linux-gnu
Representative log excerpt
Generated nerves_toolchain_ctng app
==> nerves_toolchain_x86_64_nerves_linux_musl
Generated nerves_toolchain_x86_64_nerves_linux_musl app
==> nerves_system_x86_64
Generated nerves_system_x86_64 app
==> nerves_compatibility_test

Nerves environment
  MIX_TARGET:   x86_64
  MIX_ENV:      prod

==> circular_buffer
Compiling 1 file (.ex)
Generated circular_buffer app
==> nerves_logging
 CC kmsg_tailer.o
 LD kmsg_tailer
Compiling 5 files (.ex)
Generated nerves_logging app
==> ring_logger
Compiling 7 files (.ex)
Generated ring_logger app
==> shoehorn
Compiling 8 files (.ex)
Generated shoehorn app
==> rustler_precompiled
Compiling 4 files (.ex)
Generated rustler_precompiled app
==> postal
Compiling 4 files (.ex)

== Compilation error in file lib/postal/native.ex ==
** (RuntimeError) precompiled NIF is not available for this target: "x86_64-unknown-linux-musl".
The available targets are:
 - aarch64-apple-darwin
 - x86_64-unknown-linux-gnu
 - aarch64-unknown-linux-gnu
    lib/postal/native.ex:8: (module)
could not compile dependency :postal, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile postal --force", update it with "mix deps.update postal" or clean it with "mix deps.clean postal"
Other / unclassified
57 failures · 24 packages
Failures whose logs didn't match any known signature — worth eyeballing to propose a new pattern.
Affecting nerves_system_mangopi_mq_pro nerves_system_rpi4 nerves_system_x86_64 · NIF language breakdown: rust × 2
Show 57 affected packages
avrogen riscv64
avrogen x86_64
ca riscv64
ca arm64
ca x86_64
chat riscv64
chat arm64
chat x86_64
color riscv64
eue riscv64
eue arm64
eue x86_64
fledex riscv64
fledex arm64
fledex x86_64
hecate_sdk riscv64
hecate_sdk arm64
hecate_sdk x86_64
jido_simplemem riscv64
kaffe riscv64
kaffe x86_64
khepri riscv64
khepri arm64
khepri x86_64
klife riscv64
klife x86_64
reckon_db riscv64
reckon_db arm64
reckon_db x86_64
sexy riscv64
sexy arm64
sexy x86_64
temporal_sdk arm64
temporal_sdk x86_64
text riscv64
timeless_logs riscv64
timeless_logs x86_64
timeless_metrics riscv64 rust
timeless_metrics x86_64 rust
timeless_traces riscv64
Representative log excerpt
==> tablet
Compiling 2 files (.ex)
Generated tablet app
==> elixir_make
Compiling 8 files (.ex)
Generated elixir_make app
==> nerves_discovery
Compiling 5 files (.ex)
Generated nerves_discovery app
==> interactive_cmd
Compiling 1 file (.ex)
Generated interactive_cmd app
==> nerves
HOST_CC port.o
HOST_LD port
Compiling 50 files (.ex)
Generated nerves app
==> nerves_compatibility_test

Nerves environment
  MIX_TARGET:   mangopi_mq_pro
  MIX_ENV:      prod

Checking for prebuilt Nerves artifacts...
  Checking nerves_system_mangopi_mq_pro...
  => Trying /home/nerves/.nerves/dl/nerves_system_mangopi_mq_pro-portable-0.15.5-B9639AA.tar.gz
** (MatchError) no match of right hand side value:

    {:error,
     "/usr/bin/tar: staging/usr/lib/erlang/bin: Directory renamed before its status could be extracted\n/usr/bin/tar: staging/usr/lib/erlang: Directory renamed before its status could be extracted\n/usr/bin/tar: staging/usr/lib: Directory renamed before its status could be extracted\n/usr/bin/tar: Exiting with failure status due to previous errors\n"}

    (nerves 1.14.2) lib/nerves/artifact/cache.ex:34: Nerves.Artifact.Cache.put/2
    (nerves 1.14.2) lib/mix/tasks/nerves.artifact.get.ex:85: Mix.Tasks.Nerves.Artifact.Get.put_cache/2
    (elixir 1.19.4) lib/enum.ex:961: Enum."-each/2-lists^foreach/1-0-"/2
    (mix 1.19.4) lib/mix/task.ex:499: anonymous fn/3 in Mix.Task.run_task/5
    (nerves 1.14.2) lib/mix/tasks/nerves.deps.get.ex:19: Mix.Tasks.Nerves.Deps.Get.run/1
    (mix 1.19.4) lib/mix/task.ex:499: anonymous fn/3 in Mix.Task.run_task/5
    (mix 1.19.4) lib/mix/task.ex:573: Mix.Task.run_alias/6
    (mix 1.19.4) lib/mix/cli.ex:129: Mix.CLI.run_task/2
Could not compile dependency
46 failures · 27 packages
Catch-all for build failures where a dep's `mix compile` returned nonzero. See the representative log for the specific dep and cause.
Affecting nerves_system_mangopi_mq_pro nerves_system_rpi4 nerves_system_x86_64 · NIF language breakdown: c × 9 rust × 6
Show 46 affected packages
avatarz riscv64
vix
captcha_c riscv64
captcha_c
captcha_c arm64
captcha_c
captcha_c x86_64
captcha_c
duckdbex x86_64 c
duckdbex
dux riscv64
adbc
dux x86_64
adbc
ekv riscv64 c
ekv
ekv arm64 c
ekv
ekv x86_64 c
ekv
emerge riscv64 rust
emerge
emerge x86_64 rust
emerge
ex_h3o riscv64 rust
ex_h3o
ex_libsrt riscv64
ex_libsrt
ex_libsrt x86_64
ex_libsrt
ex_mgrs riscv64 rust
ex_mgrs
ex_mgrs x86_64 rust
ex_mgrs
ex_openzl riscv64 c
ex_openzl
ex_openzl x86_64 c
ex_openzl
ex_vrp arm64 c
ex_vrp
ex_vrp x86_64 c
ex_vrp
iiif_image_plug riscv64
vix
kino_dux riscv64
adbc
kino_dux x86_64
adbc
kino_phonograph riscv64
vix
kino_zoetrope riscv64
vix
margarine riscv64
vix
membrane_camera_capture_plugin riscv64
membrane_camera_capture_plugin
membrane_camera_capture_plugin x86_64
membrane_camera_capture_plugin
membrane_ffmpeg_swresample_plugin riscv64
membrane_ffmpeg_swresample_plugin
membrane_ffmpeg_swresample_plugin x86_64
membrane_ffmpeg_swresample_plugin
membrane_mp3_lame_plugin riscv64
membrane_mp3_lame_plugin
membrane_mp3_lame_plugin x86_64
membrane_mp3_lame_plugin
membrane_rtmp_plugin riscv64
membrane_rtmp_plugin
membrane_rtmp_plugin x86_64
membrane_rtmp_plugin
membrane_transcoder_plugin riscv64
membrane_h265_ffmpeg_plugin
membrane_transcoder_plugin x86_64
membrane_h265_ffmpeg_plugin
minijinja_ex riscv64 rust
minijinja_ex
nanodrop riscv64
vix
pdfium riscv64 c
pdfium
phoenix_image riscv64
vix
picam riscv64
picam
picam arm64
picam
picam x86_64
picam
rpi_fb_capture riscv64
rpi_fb_capture
rpi_fb_capture x86_64
rpi_fb_capture
Representative log excerpt
Nerves environment
  MIX_TARGET:   rpi4
  MIX_ENV:      prod

Checking for prebuilt Nerves artifacts...
  Found nerves_system_rpi4 in cache
    /home/nerves/.nerves/artifacts/nerves_system_rpi4-portable-2.0.2
  Found nerves_toolchain_aarch64_nerves_linux_gnu in cache
    /home/nerves/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-linux_aarch64-13.2.0
==> nerves
==> nerves_system_br
Generated nerves_system_br app
==> nerves_toolchain_ctng
Compiling 1 file (.ex)
Generated nerves_toolchain_ctng app
==> nerves_toolchain_aarch64_nerves_linux_gnu
Generated nerves_toolchain_aarch64_nerves_linux_gnu app
==> nerves_system_rpi4
Generated nerves_system_rpi4 app
==> nerves_compatibility_test

Nerves environment
  MIX_TARGET:   rpi4
  MIX_ENV:      prod

==> circular_buffer
Compiling 1 file (.ex)
Generated circular_buffer app
==> captcha_c
rm -f priv/captcha src/captcha.o 
/home/nerves/.nerves/artifacts/nerves_toolchain_aarch64_nerves_linux_gnu-linux_aarch64-13.2.0/bin/aarch64-nerves-linux-gnu-gcc -g -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 --sysroot /home/nerves/.nerves/artifacts/nerves_system_rpi4-portable-2.0.2/staging aarch64 -c -o src/captcha.o src/captcha.c
aarch64-nerves-linux-gnu-gcc: warning: aarch64: linker input file unused because linking not done
aarch64-nerves-linux-gnu-gcc: error: aarch64: linker input file not found: No such file or directory
make: *** [: src/captcha.o] Error 1

could not compile dependency :captcha_c, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile captcha_c --force", update it with "mix deps.update captcha_c" or clean it with "mix deps.clean captcha_c"
==> nerves_compatibility_test
** (Mix) Make failed with exit code 2
Failed to load NIF library at runtime
13 failures · 10 packages
Application loaded on target but the NIF .so couldn't be dlopened — usually means the NIF was compiled but for the wrong libc/ABI.
Affecting nerves_system_mangopi_mq_pro nerves_system_x86_64 · NIF language breakdown: rust × 2
Show 13 affected packages
avatarz x86_64
ethers riscv64
ethers x86_64
ethers_kms riscv64
ethers_kms x86_64
kino_zoetrope x86_64
makeup_syntect riscv64 rust
makeup_syntect x86_64 rust
margarine x86_64
nanodrop x86_64
phoenix_image x86_64
Representative log excerpt
Compiling 1 file (.ex)
Generated circular_buffer app
==> protoss
Compiling 1 file (.ex)
Generated protoss app
==> nerves_logging
 CC kmsg_tailer.o
 LD kmsg_tailer
Compiling 5 files (.ex)
Generated nerves_logging app
==> ring_logger
Compiling 7 files (.ex)
Generated ring_logger app
==> shoehorn
Compiling 8 files (.ex)
Generated shoehorn app
==> uboot_env
Compiling 5 files (.ex)
Generated uboot_env app
==> cc_precompiler
Compiling 3 files (.ex)
Generated cc_precompiler app
==> vix
Downloading precompiled NIF to /home/nerves/.cache/elixir_make/vix-nif-2.17-x86_64-linux-musl-0.38.0.tar.gz
Compiling 28 files (.ex)

19:41:16.417 [warning] The on_load function for module Elixir.Vix.Nif returned:
{:error,
 {:load_failed,
  ~c"Failed to load NIF library: '/work/proj/_build/x86_64/lib/vix/priv/vix.so: cannot open shared object file: No such file or directory'"}}


== Compilation error in file lib/vix/vips/enum.ex ==
** (UndefinedFunctionError) function Vix.Nif.nif_vips_enum_list/0 is undefined (module Vix.Nif is not available)
    Vix.Nif.nif_vips_enum_list()
    lib/vix/vips/enum.ex:5: Vix.Vips.EnumHelper.__before_compile__/1
    (stdlib 7.2) lists.erl:2466: :lists.foldl/3
    (stdlib 7.2) lists.erl:2471: :lists.foldl_1/3
could not compile dependency :vix, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile vix --force", update it with "mix deps.update vix" or clean it with "mix deps.clean vix"