Error occurs while adding packages due to dependency failed to precompile

Hi there, Ive been using a package on Julia for a while and it worked fine, until today when I tried to update it, there seems to be an error about precompilation. I’m not sure how to solve it so I deleted Julia and reinstalled it, then I tried to add the package again in Julia and the same problem seems occurred again. I’m not sure what caused it so I come here for some advice. Thank you in advance for whoever takes a look! The error is as below:

julia> err

PkgPrecompileError: The following 1 direct dependency failed to precompile:

NMRAnalysis

Failed to precompile NMRAnalysis [e8f11e50-668f-4bdf-b40b-95f76662da30] to “/Users/dongdanni/tmp/.julia/compiled/v1.11/NMRAnalysis/jl_MXdGmN”.

ERROR: LoadError: InitError: could not load library “/Users/dongdanni/tmp/.julia/artifacts/5ff32672168a3955c1e54d4dff9437a90fb22474/lib/QtConcurrent.framework/Versions/A/QtConcurrent”

dlopen(/Users/dongdanni/tmp/.julia/artifacts/5ff32672168a3955c1e54d4dff9437a90fb22474/lib/QtConcurrent.framework/Versions/A/QtConcurrent, 1): Symbol not found: _kIOMainPortDefault

Referenced from: /Users/dongdanni/tmp/.julia/artifacts/5ff32672168a3955c1e54d4dff9437a90fb22474/lib/QtConcurrent.framework/Versions/A/../../../QtCore.framework/Versions/A/QtCore (which was built for Mac OS X 12.0)

Expected in: /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit

in /Users/dongdanni/tmp/.julia/artifacts/5ff32672168a3955c1e54d4dff9437a90fb22474/lib/QtConcurrent.framework/Versions/A/../../../QtCore.framework/Versions/A/QtCore

Stacktrace:

[1] dlopen(s::String, flags::UInt32; throw_error::Bool)

@ Base.Libc.Libdl ./libdl.jl:120

[2] dlopen(s::String, flags::UInt32)

@ Base.Libc.Libdl ./libdl.jl:119

[3] macro expansion

@ ~/tmp/.julia/packages/JLLWrappers/GfYNv/src/products/library_generators.jl:63 [inlined]

[4] init()

@ Qt6Base_jll ~/tmp/.julia/packages/Qt6Base_jll/xxVFK/src/wrappers/x86_64-apple-darwin.jl:37

[5] run_module_init(mod::Module, i::Int64)

@ Base ./loading.jl:1378

[6] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)

@ Base ./loading.jl:1366

[7] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}, ignore_native::Nothing; register::Bool)

@ Base ./loading.jl:1254

[8] _include_from_serialized (repeats 2 times)

@ ./loading.jl:1210 [inlined]

[9] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})

@ Base ./loading.jl:2057

[10] _require(pkg::Base.PkgId, env::String)

@ Base ./loading.jl:2527

[11] __require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2388

[12] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[13] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[14] _require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2375

[15] macro expansion

@ ./loading.jl:2314 [inlined]

[16] macro expansion

@ ./lock.jl:273 [inlined]

[17] __require(into::Module, mod::Symbol)

@ Base ./loading.jl:2271

[18] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[19] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[20] require(into::Module, mod::Symbol)

@ Base ./loading.jl:2260

[21] include(mod::Module, _path::String)

@ Base ./Base.jl:557

[22] top-level scope

@ ~/tmp/.julia/packages/JLLWrappers/GfYNv/src/toplevel_generators.jl:199

[23] include

@ ./Base.jl:557 [inlined]

[24] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)

@ Base ./loading.jl:2881

[25] top-level scope

@ stdin:6

during initialization of module Qt6Base_jll

in expression starting at /Users/dongdanni/tmp/.julia/packages/GR_jll/F8wNU/src/wrappers/x86_64-apple-darwin.jl:14

in expression starting at /Users/dongdanni/tmp/.julia/packages/GR_jll/F8wNU/src/GR_jll.jl:2

in expression starting at stdin:6

┌ Error: import GR_jll failed.

Consider using GR.GRPreferences.use_jll_binary() or

GR.GRPreferences.use_upstream_binary() to repair.

Importing GR a second time will allow use of these functions.

@ GR.GRPreferences ~/tmp/.julia/packages/GR/s7T1Y/src/preferences.jl:8

ERROR: LoadError: Failed to precompile GR_jll [d2c73de3-f751-5644-a686-071e5b155ba9] to “/Users/dongdanni/tmp/.julia/compiled/v1.11/GR_jll/jl_WaoDeh”.

Stacktrace:

[1] error(s::String)

@ Base ./error.jl:35

[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)

@ Base ./loading.jl:3174

[3] (::Base.var"#1110#1111"{Base.PkgId})()

@ Base ./loading.jl:2579

[4] mkpidlock(f::Base.var"#1110#1111"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})

@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:95

[5] #mkpidlock#6

@ ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:90 [inlined]

[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})

@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:116

[7] #invokelatest#2

@ ./essentials.jl:1057 [inlined]

[8] invokelatest

@ ./essentials.jl:1052 [inlined]

[9] maybe_cachefile_lock(f::Base.var"#1110#1111"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)

@ Base ./loading.jl:3698

[10] maybe_cachefile_lock

@ ./loading.jl:3695 [inlined]

[11] _require(pkg::Base.PkgId, env::String)

@ Base ./loading.jl:2565

[12] __require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2388

[13] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[14] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[15] _require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2375

[16] macro expansion

@ ./loading.jl:2314 [inlined]

[17] macro expansion

@ ./lock.jl:273 [inlined]

[18] __require(into::Module, mod::Symbol)

@ Base ./loading.jl:2271

[19] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[20] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[21] require(into::Module, mod::Symbol)

@ Base ./loading.jl:2260

[22] top-level scope

@ ~/tmp/.julia/packages/GR/s7T1Y/src/preferences.jl:6

[23] include(mod::Module, _path::String)

@ Base ./Base.jl:557

[24] include(x::String)

@ GR ~/tmp/.julia/packages/GR/s7T1Y/src/GR.jl:20

[25] top-level scope

@ ~/tmp/.julia/packages/GR/s7T1Y/src/GR.jl:289

[26] include

@ ./Base.jl:557 [inlined]

[27] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)

@ Base ./loading.jl:2881

[28] top-level scope

@ stdin:6

in expression starting at /Users/dongdanni/tmp/.julia/packages/GR/s7T1Y/src/preferences.jl:1

in expression starting at /Users/dongdanni/tmp/.julia/packages/GR/s7T1Y/src/GR.jl:1

in expression starting at stdin:6

ERROR: LoadError: Failed to precompile GR [28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71] to “/Users/dongdanni/tmp/.julia/compiled/v1.11/GR/jl_YMg6ES”.

Stacktrace:

[1] error(s::String)

@ Base ./error.jl:35

[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)

@ Base ./loading.jl:3174

[3] (::Base.var"#1110#1111"{Base.PkgId})()

@ Base ./loading.jl:2579

[4] mkpidlock(f::Base.var"#1110#1111"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})

@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:95

[5] #mkpidlock#6

@ ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:90 [inlined]

[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})

@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:116

[7] #invokelatest#2

@ ./essentials.jl:1057 [inlined]

[8] invokelatest

@ ./essentials.jl:1052 [inlined]

[9] maybe_cachefile_lock(f::Base.var"#1110#1111"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)

@ Base ./loading.jl:3698

[10] maybe_cachefile_lock

@ ./loading.jl:3695 [inlined]

[11] _require(pkg::Base.PkgId, env::String)

@ Base ./loading.jl:2565

[12] __require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2388

[13] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[14] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[15] _require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2375

[16] macro expansion

@ ./loading.jl:2314 [inlined]

[17] macro expansion

@ ./lock.jl:273 [inlined]

[18] __require(into::Module, mod::Symbol)

@ Base ./loading.jl:2271

[19] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[20] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[21] require(into::Module, mod::Symbol)

@ Base ./loading.jl:2260

[22] top-level scope

@ ~/tmp/.julia/packages/Plots/uiCPf/src/backends.jl:381

[23] eval

@ ./boot.jl:430 [inlined]

[24] _initialize_backend(pkg::Plots.GRBackend)

@ Plots ~/tmp/.julia/packages/Plots/uiCPf/src/backends.jl:380

[25] backend(pkg::Plots.GRBackend)

@ Plots ~/tmp/.julia/packages/Plots/uiCPf/src/backends.jl:245

[26] backend(sym::Symbol)

@ Plots ~/tmp/.julia/packages/Plots/uiCPf/src/backends.jl:255

[27] load_default_backend()

@ Plots ~/tmp/.julia/packages/Plots/uiCPf/src/backends.jl:200

[28] backend()

@ Plots ~/tmp/.julia/packages/Plots/uiCPf/src/backends.jl:233

[29] top-level scope

@ ~/tmp/.julia/packages/Plots/uiCPf/src/init.jl:110

[30] include(mod::Module, _path::String)

@ Base ./Base.jl:557

[31] include(x::String)

@ Plots ~/tmp/.julia/packages/Plots/uiCPf/src/Plots.jl:1

[32] top-level scope

@ ~/tmp/.julia/packages/Plots/uiCPf/src/Plots.jl:176

[33] include

@ ./Base.jl:557 [inlined]

[34] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)

@ Base ./loading.jl:2881

[35] top-level scope

@ stdin:6

in expression starting at /Users/dongdanni/tmp/.julia/packages/Plots/uiCPf/src/init.jl:110

in expression starting at /Users/dongdanni/tmp/.julia/packages/Plots/uiCPf/src/Plots.jl:1

in expression starting at stdin:6

ERROR: LoadError: Failed to precompile Plots [91a5bcdd-55d7-5caf-9e0b-520d859cae80] to “/Users/dongdanni/tmp/.julia/compiled/v1.11/Plots/jl_drjeQ2”.

Stacktrace:

[1] error(s::String)

@ Base ./error.jl:35

[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)

@ Base ./loading.jl:3174

[3] (::Base.var"#1110#1111"{Base.PkgId})()

@ Base ./loading.jl:2579

[4] mkpidlock(f::Base.var"#1110#1111"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})

@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:95

[5] #mkpidlock#6

@ ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:90 [inlined]

[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})

@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.11.5+0.x64.apple.darwin14/share/julia/stdlib/v1.11/FileWatching/src/pidfile.jl:116

[7] #invokelatest#2

@ ./essentials.jl:1057 [inlined]

[8] invokelatest

@ ./essentials.jl:1052 [inlined]

[9] maybe_cachefile_lock(f::Base.var"#1110#1111"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)

@ Base ./loading.jl:3698

[10] maybe_cachefile_lock

@ ./loading.jl:3695 [inlined]

[11] _require(pkg::Base.PkgId, env::String)

@ Base ./loading.jl:2565

[12] __require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2388

[13] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[14] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[15] _require_prelocked(uuidkey::Base.PkgId, env::String)

@ Base ./loading.jl:2375

[16] macro expansion

@ ./loading.jl:2314 [inlined]

[17] macro expansion

@ ./lock.jl:273 [inlined]

[18] __require(into::Module, mod::Symbol)

@ Base ./loading.jl:2271

[19] #invoke_in_world#3

@ ./essentials.jl:1089 [inlined]

[20] invoke_in_world

@ ./essentials.jl:1086 [inlined]

[21] require(into::Module, mod::Symbol)

@ Base ./loading.jl:2260

[22] include

@ ./Base.jl:557 [inlined]

[23] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)

@ Base ./loading.jl:2881

[24] top-level scope

@ stdin:6

in expression starting at /Users/dongdanni/tmp/.julia/packages/NMRAnalysis/Hh1ES/src/NMRAnalysis.jl:1

in expression starting at stdin:

1 Like

Quick note before really commenting, put Julia code, printouts, and logs inside triple backticks block like this so it doesn’t get formatted wrongly like document text and take up so much space
```
paste here
```

NMRAnalysis directly depends on Plots, which in turn depends on GR, which in turn depends on GR_jll. It’s the import of the GR_jll package where loading an artifact is failing. I can’t tell (maybe someone else can) why that went wrong.

You mentioned an update; in the past, some updated releases have caused this problem for a subset of users, which is fixed by users bringing it to the developers’ attention and by the relevant developers adjusting something in their package or registry. Even if this doesn’t end up to be something for them to fix, it could be worth asking for what they know.

It’s also possible that your installation just went wrong somewhere; uninstalling and reinstalling Julia itself doesn’t actually touch the cache of installed packages, and adding a package to an environment does not reinstall if the cache already has the package of the same version. I also don’t know a proper way to try reinstalling a package, sorry I can’t be of much help. If this is the fix, then hopefully someone shows up to teach us both something, I’ll just bump the thread to help.

For an unsustainable stopgap measure, try adding previous versions of Plots or NMRAnalysis and see if you can at least get back to work or if installation is really broken. NMRAnalysis v0.2.x only depends on Plots v1.40.y, so you don’t have many combinations of older patches to check. If you also pin those patches, then you can update other packages without any risk of changing them. Discovering the greatest versions that work could also be informative for developers if you do bring this to their attention.