Precompiling error with DifferentialEquations

Hello,

I am very new to Julia and I’ve been struggling with a problem since DifferentialEquations got updated. My code was working but now several dependencies that I need will not precompile, and my code won’t execute because it does not recognize Tsit5 and other crucial functions. When I try to run the “using” line, I get the following message:

Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] (cache misses: wrong dep version loaded (2), incompatible header (2), dep missing source (2)).

I tried running an older version of the package, then I tried removing and re-downloading the package, and then I tried deleting and re-downloading an updated version of Julia and running the newer version with the most up-to-date package and nothing works. I am launching Julia into Jupyter notebooks with Anaconda Navigator, and running a Julia 1.11.4 kernel, as well as using v7.16.1 of DifferentialEquations.

Any advice would be greatly appreciated!

Thanks!

How did you install Julia?

I used the download link here: Download Julia

Interesting. It seems like you’re having download issues? Do you have full permissions on this computer?

Hi,

That shouldn’t be a problem, the computer is my personal laptop.

I tried installing everything fresh on my PC (to use a different OS), and I am still having problems with the same 15 dependencies. I downloaded julia from the command line in the website I mentioned, and started running Jupyter Notebook from Anaconda Navigator. I don’t get the errors of the cache misses now, but it just throws a warning: could not import on the same 15 dependencies. More specifically, the errors say that it “failed to precompile” the 15 dependencies, and I also get several warnings that certain functions could not be imported to NonlinearSolve.

Thank you for your reply and I really appreciate any help.

Can you copy paste the error from the REPL?

Here is the error for when I try to precompile the project:
Precompiling project…
✗ NonlinearSolve
✗ NonlinearSolve → NonlinearSolveNLsolveExt
✗ NonlinearSolve → NonlinearSolveBandedMatricesExt
✗ OrdinaryDiffEqNonlinearSolve
✗ StochasticDiffEq
✗ OrdinaryDiffEqFIRK
✗ OrdinaryDiffEqSDIRK
✗ OrdinaryDiffEqPDIRK
✗ OrdinaryDiffEqIMEXMultistep
✗ OrdinaryDiffEqStabilizedIRK
✗ OrdinaryDiffEqBDF
✗ OrdinaryDiffEqDefault
✗ OrdinaryDiffEq
✗ DelayDiffEq
✗ DifferentialEquations
0 dependencies successfully precompiled in 147 seconds. 631 already precompiled.
15 dependencies errored.

and the error for when I try to use the “using DifferentialEquations” line:

[ Info: Precompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]
WARNING: could not import DiffEqBase.AbstractNonlinearTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbstractSafeBestNonlinearTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsNormTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsSafeBestTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsSafeTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.AbsTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.NormTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelNormTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelSafeBestTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelSafeTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.RelTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.SimpleNonlinearSolveTerminationMode into NonlinearSolve
WARNING: could not import DiffEqBase.SteadyStateDiffEqTerminationMode into NonlinearSolve
ERROR: LoadError: UndefVarError: AbstractNonlinearTerminationMode not defined in NonlinearSolve
Stacktrace:
[1] top-level scope
@ C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\internal\termination.jl:11
[2] include(mod::Module, _path::String)
@ Base .\Base.jl:557
[3] include(x::String)
@ NonlinearSolve C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\NonlinearSolve.jl:1
[4] top-level scope
@ C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\NonlinearSolve.jl:83
[5] include
@ .\Base.jl:557 [inlined]
[6] 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
[7] top-level scope
@ stdin:6
in expression starting at C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\internal\termination.jl:11
in expression starting at C:\Users\Amelia.julia\packages\NonlinearSolve\sBl1H\src\NonlinearSolve.jl:1
in expression starting at stdin:6
ERROR: LoadError: Failed to precompile NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec] to “C:\Users\Amelia\.julia\compiled\v1.11\NonlinearSolve\jl_41BC.tmp”.
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 C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\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::String)
@ Base .\loading.jl:2881
[24] top-level scope
@ stdin:6
in expression starting at C:\Users\Amelia.julia\packages\OrdinaryDiffEqNonlinearSolve\e4hoO\src\OrdinaryDiffEqNonlinearSolve.jl:1
in expression starting at stdin:6
ERROR: LoadError: Failed to precompile OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8] to “C:\Users\Amelia\.julia\compiled\v1.11\OrdinaryDiffEqNonlinearSolve\jl_3CDA.tmp”.
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 C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\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::String)
@ Base .\loading.jl:2881
[24] top-level scope
@ stdin:6
in expression starting at C:\Users\Amelia.julia\packages\StochasticDiffEq\5eZ6m\src\StochasticDiffEq.jl:1
in expression starting at stdin:6
ERROR: LoadError: Failed to precompile StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0] to “C:\Users\Amelia\.julia\compiled\v1.11\StochasticDiffEq\jl_36BF.tmp”.
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 C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\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 C:\Users\Amelia.julia\packages\DifferentialEquations\eQbP8\src\DifferentialEquations.jl:1
in expression starting at stdin:6
Failed to precompile DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] to “C:\Users\Amelia\.julia\compiled\v1.11\DifferentialEquations\jl_38F3.tmp”.

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 C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:95
[5] #mkpidlock#6
@ C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia\stdlib\v1.11\FileWatching\src\pidfile.jl:90 [inlined]
[6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile C:\Users\Amelia.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\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

Just to rule out a few things:

  • what is your OS (can you paste the output of the Julia function versioninfo())?
  • does it work if you just start a REPL in the terminal? e.g. open a bash/PowerShell/… window and type juliaand copy-paste the code you are normally executing in Jupyter
  • from within Jupyter, what is the output of DEPOT_PATH and what happens when you rename the folder that is shown (something ending in .../.julia) and restart the kernel? Does it still throw the same errors?

Hi,

  1. the output of versioninfo() is
    Julia Version 1.11.4
    Commit 8561cc3d68 (2025-03-10 11:36 UTC)
    Build Info:
    Official https://julialang.org/ release
    Platform Info:
    OS: Windows (x86_64-w64-mingw32)
    CPU: 12 × AMD Ryzen 5 5500
    WORD_SIZE: 64
    LLVM: libLLVM-16.0.6 (ORCJIT, znver3)
    Threads: 1 default, 0 interactive, 1 GC (on 12 virtual cores).
  2. When I start the REPL in the terminal and try the “using DifferentialEquations” term, I get the same errors.
  3. The following is the output of DEPOT_PATH,
    3-element Vector{String}:
    “C:\Users\Amelia\.julia”
    “C:\Users\Amelia\.julia\juliaup\” ⋯ 17 bytes ⋯ “4.w64.mingw32\local\share\julia”
    “C:\Users\Amelia\.julia\juliaup\julia-1.11.4+0.x64.w64.mingw32\share\julia”
    I’m not sure if I fully understood your instructions but I don’t think anything changed.

Thank you!

Can you share ]st?

Status C:\Users\Amelia\.julia\environments\v1.11\Project.toml
⌃ [13f3f980] CairoMakie v0.12.18
[1130ab10] DiffEqParamEstim v2.2.0
[0c46a032] DifferentialEquations v7.16.1
[af5da776] GlobalSensitivity v2.7.0
[7073ff75] IJulia v1.27.0
⌃ [8913a72c] NonlinearSolve v3.15.1
[7f7a1694] Optimization v4.1.2
[3e6eede4] OptimizationBBO v0.4.0
[36348300] OptimizationOptimJL v0.4.1
[91a5bcdd] Plots v1.40.11
[3fca794e] ProfileLikelihood v0.4.1
[8a4e6c94] QuasiMonteCarlo v0.3.3
[10745b16] Statistics v1.11.1
Info Packages marked with ⌃ have new versions available and may be upgradable.

It looks like your versions are a bit out of sync because of some bounds issues we have to handle, + ProfileLikelihood.jl just not having been updated in a long time. Can you try removing ProfileLilkelihood and the ]up?

Hi,

That worked! Thank you so much, I really appreciate all your help you actually saved me.

I’m very new to Julia but I’m glad to see what a supportive community there is!

Truly, thank you!

I’ve had the very same problem with ArchGDAL.jl… very weird. I had to remove it.

Same exact issue for me with the AbstractNonlinearTerminationMode not defined in NonlinearSolve error! @ChrisRackauckas

Abridged precompilation error

julia> err
> PkgPrecompileError: The following 6 direct dependencies failed to precompile:

Catalyst 

Failed to precompile Catalyst [479239e8-5488-4da2-87a7-35f2df7eef83] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/Catalyst/jl_BDWIHZ".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

Failed to precompile CatalystCairoMakieExtension [505083d8-75bf-58f0-848e-17ed6f43954a] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/CatalystCairoMakieExtension/jl_I07CdZ".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

ModelingToolkit 

Failed to precompile ModelingToolkit [961ee093-0014-501f-94e3-6117800e7a78] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/ModelingToolkit/jl_Oijq7X".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

OrdinaryDiffEq 

Failed to precompile OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/OrdinaryDiffEq/jl_2IYPZX".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
...

DiffEqCallbacks 

Failed to precompile DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/DiffEqCallbacks/jl_vzoWMZ".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
 [1] include
   @ ./Base.jl:495 [inlined]
...

MTKChainRulesCoreExt 

Failed to precompile MTKChainRulesCoreExt [e86d2102-9cb4-5e93-8b67-808f3ccccc73] to "/home/local/WIN/jfisch27/.julia/compiled/v1.10/MTKChainRulesCoreExt/jl_8MGzeY".
ERROR: LoadError: UndefVarError: `AbstractNonlinearTerminationMode` not defined
Stacktrace:
...

Project env

pkg> status --outdated -m
Status `/home/jfisch27/Desktop/ThesisStuff/GeometricallyTunableOscillator/Manifest.toml`
⌃ [13f3f980] CairoMakie v0.12.18 (<v0.13.5)
⌃ [479239e8] Catalyst v14.4.1 (<v15.0.6)
⌅ [3da002f7] ColorTypes v0.11.5 (<v0.12.1): ColorVectorSpace, ShaderAbstractions
⌃ [c3611d14] ColorVectorSpace v0.10.0 (<v0.11.0)
⌅ [a80b9123] CommonMark v0.8.16 (<v0.9.1): JuliaFormatter
⌃ [2b5f629d] DiffEqBase v6.168.0 (<v6.173.1)
⌅ [459566f4] DiffEqCallbacks v3.9.1 ⚲ (<v4.5.0): ModelingToolkit
⌅ [a0c0ee7d] DifferentiationInterface v0.6.54 (<v0.7.0): NLSolversBase, NonlinearSolve, OrdinaryDiffEqDifferentiation, OrdinaryDiffEqRosenbrock, SimpleNonlinearSolve
⌅ [6b7a57c9] Expronicon v0.8.5 (<v0.10.14): ModelingToolkit
⌅ [8fc22ac5] FilePaths v0.8.3 (<v0.9.0): Makie
⌅ [f6369f11] ForwardDiff v0.10.38 (<v1.0.1): DiffEqCallbacks, ModelingToolkit, NonlinearSolve, OrdinaryDiffEq, OrdinaryDiffEqDifferentiation, OrdinaryDiffEqNonlinearSolve, OrdinaryDiffEqRosenbrock, SimpleNonlinearSolve
⌅ [d9f16b24] Functors v0.4.12 (<v0.5.2): DiffEqCallbacks
⌃ [e9467ef8] GLMakie v0.10.18 (<v0.11.6)
⌅ [5c1252a2] GeometryBasics v0.4.11 (<v0.5.9): CairoMakie, GLMakie, Makie, MakieCore, MeshIO, ShaderAbstractions
⌅ [98e50ef6] JuliaFormatter v1.0.62 (<v2.1.2): ModelingToolkit
⌅ [ba0b0d4f] Krylov v0.9.10 (<v0.10.1): LinearSolve
⌅ [7ed4a6bd] LinearSolve v2.39.1 (<v3.12.0): NonlinearSolve
⌅ [ee78f7c6] Makie v0.21.18 (<v0.22.5): CairoMakie, GLMakie
⌅ [20f20a25] MakieCore v0.8.12 (<v0.9.3): Makie
⌅ [7269a6da] MeshIO v0.4.13 (<v0.5.3): GLMakie
⌃ [961ee093] ModelingToolkit v9.41.0 ⚲ (<v9.79.0)
⌅ [8913a72c] NonlinearSolve v3.15.1 (<v4.8.0): DiffEqCallbacks, ModelingToolkit
⌃ [bbf590c4] OrdinaryDiffEqCore v1.23.0 (<v1.25.0)
⌅ [aea7be01] PrecompileTools v1.2.1 (<v1.3.2): julia
⌃ [0bca4576] SciMLBase v2.87.0 (<v2.89.1)
⌅ [c0aeaf25] SciMLOperators v0.3.13 (<v0.4.0): DiffEqBase, LinearSolve, NonlinearSolve, OrdinaryDiffEqCore, SciMLBase
⌅ [65257c39] ShaderAbstractions v0.4.1 (<v0.5.0): GLMakie, Makie
⌅ [727e6d20] SimpleNonlinearSolve v1.12.3 (<v2.5.0): ModelingToolkit, NonlinearSolve
⌅ [09ab397b] StructArrays v0.6.21 (<v0.7.1): GeometryBasics, ShaderAbstractions
⌃ [2efcf032] SymbolicIndexingInterface v0.3.37 ⚲ (<v0.3.40)
⌅ [68821587] Arpack_jll v3.5.1+1 (<v3.9.1+2): Arpack
⌃ [83423d85] Cairo_jll v1.18.4+0 (<v1.18.5+0)
⌅ [b22a6f82] FFMPEG_jll v6.1.2+0 (<v7.1.0+0): Makie
⌃ [7746bdde] Glib_jll v2.82.4+0 (<v2.84.0+0)
⌅ [e9f186c6] Libffi_jll v3.2.2+2 (<v3.4.7+0): Glib_jll, HarfBuzz_jll, Wayland_jll
⌅ [30392449] Pixman_jll v0.44.2+0 (<v0.46.0+0): Cairo_jll
⌃ [a2964d1f] Wayland_jll v1.21.0+2 (<v1.23.1+0)
⌅ [02c8fc9c] XML2_jll v2.13.6+1 (<v2.14.1+0): Gettext_jll, Wayland_jll
⌅ [dfaa095f] x265_jll v3.6.0+0 (<v4.1.0+0): FFMPEG_jll

Version Info

julia> versioninfo()
Julia Version 1.10.9
Commit 5595d20a287 (2025-03-10 12:51 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 36 × Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, cascadelake)
Threads: 36 default, 0 interactive, 18 GC (on 36 virtual cores)
Environment:
  LD_LIBRARY_PATH = /tmp/.mount_CursorMleN5b/usr/lib/:/tmp/.mount_CursorMleN5b/usr/lib32/:/tmp/.mount_CursorMleN5b/usr/lib64/:/tmp/.mount_CursorMleN5b/lib/:/tmp/.mount_CursorMleN5b/lib/i386-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/x86_64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/aarch64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib32/:/tmp/.mount_CursorMleN5b/lib64/:
  JULIA_NUM_THREADS = auto

Share ]st. I’m going to backport a fix to NonlinearSolve.jl v3, but you really want to find out what’s blocking everything there for many reasons.

I have backported NonlinearSolve v3.15.2 which should make the error go away. But… NonlinearSolve v4 came out almost a year ago so I’d recommend finding out what is blocking it and getting the many performance improvements from that.

UPDATE

Thanks to Chris’s backport of AbstractNonlinearTerminationMode into NonlinearSolve v3.15.2, just running ] up now pulls in the fix and my project precompiles without error.

(OptimizationFrameworks) pkg> up
    Updating registry at `~/.julia/registries/General.toml`
   Installed gperf_jll ──────────── v3.3.0+0
   Installed SimpleNonlinearSolve ─ v1.12.5
   Installed CondaPkg ───────────── v0.2.29
   Installed NonlinearSolve ─────── v3.15.2
   Installed PythonCall ─────────── v0.9.25
   Installed GPUCompiler ────────── v1.4.1
   Installed Optimization ───────── v4.3.0
   Installed OptimizationOptimJL ── v0.4.3
   Installed Enzyme_jll ─────────── v0.0.179+0
   Installed Enzyme ─────────────── v0.13.43
  Downloaded artifact: Enzyme
  Downloaded artifact: gperf
    Updating `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Project.toml`
  [992eb4ea] ↑ CondaPkg v0.2.28 ⇒ v0.2.29
  [7da242da] ↑ Enzyme v0.13.41 ⇒ v0.13.43
⌅ [8913a72c] ↑ NonlinearSolve v3.15.1 ⇒ v3.15.2
  [7f7a1694] ↑ Optimization v4.2.0 ⇒ v4.3.0
  [36348300] ↑ OptimizationOptimJL v0.4.2 ⇒ v0.4.3
  [6099a3de] ↑ PythonCall v0.9.24 ⇒ v0.9.25
⌃ [0bca4576] ↑ SciMLBase v2.86.2 ⇒ v2.87.0
  [860ef19b] ↑ StableRNGs v1.0.2 ⇒ v1.0.3
    Updating `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Manifest.toml`
  [4fba245c] ↑ ArrayInterface v7.18.0 ⇒ v7.19.0
  [e2ed5e7c] ↑ Bijections v0.1.9 ⇒ v0.1.10
  [992eb4ea] ↑ CondaPkg v0.2.28 ⇒ v0.2.29
  [2b5f629d] ↑ DiffEqBase v6.171.0 ⇒ v6.173.1
⌅ [a0c0ee7d] ↑ DifferentiationInterface v0.6.52 ⇒ v0.6.54
  [31c24e10] ↑ Distributions v0.25.119 ⇒ v0.25.120
  [7da242da] ↑ Enzyme v0.13.41 ⇒ v0.13.43
  [61eb1bfa] ↑ GPUCompiler v1.4.0 ⇒ v1.4.1
⌅ [8913a72c] ↑ NonlinearSolve v3.15.1 ⇒ v3.15.2
  [7f7a1694] ↑ Optimization v4.2.0 ⇒ v4.3.0
  [36348300] ↑ OptimizationOptimJL v0.4.2 ⇒ v0.4.3
  [90014a1f] ↑ PDMats v0.11.34 ⇒ v0.11.35
  [6099a3de] ↑ PythonCall v0.9.24 ⇒ v0.9.25
⌃ [0bca4576] ↑ SciMLBase v2.86.2 ⇒ v2.87.0
  [19f34311] ↑ SciMLJacobianOperators v0.1.3 ⇒ v0.1.5
⌅ [c0aeaf25] ↓ SciMLOperators v0.3.14 ⇒ v0.3.13
⌅ [727e6d20] ↑ SimpleNonlinearSolve v1.12.3 ⇒ v1.12.5
  [860ef19b] ↑ StableRNGs v1.0.2 ⇒ v1.0.3
  [1986cc42] ↑ Unitful v1.22.0 ⇒ v1.22.1
  [7cc45869] ↑ Enzyme_jll v0.0.175+0 ⇒ v0.0.179+0
  [e33a78d0] ↑ Hwloc_jll v2.12.0+0 ⇒ v2.12.1+0
  [1a1c6b14] ↑ gperf_jll v3.1.1+1 ⇒ v3.3.0+0
  [b53b4c65] ↑ libpng_jll v1.6.47+0 ⇒ v1.6.48+0
        Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Precompiling packages finished.
  173 dependencies successfully precompiled in 182 seconds. 374 already precompiled.
  1 dependency had output during precompilation:
┌ SciMLBase → SciMLBasePythonCallExt
│      CondaPkg Found dependencies: /home/local/WIN/jfisch27/.julia/packages/PythonCall/L4cjh/CondaPkg.toml
│      CondaPkg Resolving changes
│               ~ libstdcxx-ng
│      CondaPkg Initialising pixi
│               │ /home/local/WIN/jfisch27/.julia/artifacts/cefba4912c2b400756d043a2563ef77a0088866b/bin/pixi
│               │ init
│               │ --format pixi
│               └ /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg
│  ✔ Created /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg/pixi.toml
│      CondaPkg Wrote /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg/pixi.toml
│               │ [dependencies]
│               │ openssl = ">=3, <3.6"
│               │ libstdcxx-ng = ">=3.4,<14.0"
│               │ 
│               │     [dependencies.python]
│               │     channel = "conda-forge"
│               │     build = "*cpython*"
│               │     version = ">=3.8,<4"
│               │ 
│               │ [project]
│               │ name = ".CondaPkg"
│               │ platforms = ["linux-64"]
│               │ channels = ["conda-forge"]
│               │ channel-priority = "strict"
│               └ description = "automatically generated by CondaPkg.jl"
│      CondaPkg Installing packages
│               │ /home/local/WIN/jfisch27/.julia/artifacts/cefba4912c2b400756d043a2563ef77a0088866b/bin/pixi
│               │ install
│               └ --manifest-path /home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/.CondaPkg/pixi.toml
│  ✔ The default environment has been installed.
└  

(OptimizationFrameworks) pkg> 

Original post

Here is all the project info for a separate project (OptimizationFrameworks in SciMLBenchmarks.jl), which produces the exact same precompilation error sequence as posted before, but this project is simpler and without any pinned versions.

(OptimizationFrameworks) pkg> st
Status `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Project.toml`
⌅ [54578032] ADNLPModels v0.7.2
  [6e4b80f9] BenchmarkTools v1.6.0
  [4552ee2b] BlackBoxOptimizationBenchmarking v1.0.0
  [2569d6c7] ConcreteStructs v0.2.3
⌃ [992eb4ea] CondaPkg v0.2.28
  [a93c6f00] DataFrames v1.7.0
⌃ [7da242da] Enzyme v0.13.41
⌅ [f6369f11] ForwardDiff v0.10.38
  [b6b21f68] Ipopt v1.10.3
  [4076af6c] JuMP v1.25.0
⌃ [961ee093] ModelingToolkit v9.32.0
  [f4238b75] NLPModelsIpopt v0.10.4
  [01bcebdf] Nonconvex v2.1.3
  [bf347577] NonconvexIpopt v0.4.3
⌅ [8913a72c] NonlinearSolve v3.15.1
  [429524aa] Optim v1.12.0
  [7f7a1694] Optimization v4.2.0
  [3e6eede4] OptimizationBBO v0.4.1
  [bca83a33] OptimizationBase v2.5.0
  [fd9f6733] OptimizationMOI v0.5.3
  [4e6fcdb7] OptimizationNLopt v0.3.2
⌃ [36348300] OptimizationOptimJL v0.4.2
  [91a5bcdd] Plots v1.40.13
⌅ [c36e90e8] PowerModels v0.19.10
  [08abe8d2] PrettyTables v2.4.0
⌃ [6099a3de] PythonCall v0.9.24
  [37e2e3b7] ReverseDiff v1.16.1
⌃ [0bca4576] SciMLBase v2.86.2
⌃ [47a9eef4] SparseDiffTools v2.23.1
⌃ [860ef19b] StableRNGs v1.0.2
  [2efcf032] SymbolicIndexingInterface v0.3.40
⌅ [0c5d862f] Symbolics v5.36.0
  [76f85450] LibGit2
  [37e2e46d] LinearAlgebra
  [9a3f8284] Random
  [8dfed614] Test
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated`
(OptimizationFrameworks) pkg> status --outdated -m
Status `/home/jfisch27/Desktop/SciMLBounties/BlackBoxOptimizationBenchmarking_update/SciMLBenchmarks.jl/benchmarks/OptimizationFrameworks/Manifest.toml`
⌅ [54578032] ADNLPModels v0.7.2 (<v0.8.12) [compat]
⌅ [c29ec348] AbstractDifferentiation v0.4.4 (<v0.6.2): NonconvexUtils
⌃ [4fba245c] ArrayInterface v7.18.0 (<v7.19.0)
⌃ [e2ed5e7c] Bijections v0.1.9 (<v0.1.10)
⌅ [ffa27691] ColPack v0.3.0 (<v0.5.0): ADNLPModels
⌅ [a80b9123] CommonMark v0.8.16 (<v0.9.1): JuliaFormatter
⌃ [992eb4ea] CondaPkg v0.2.28 (<v0.2.29)
⌅ [187b0558] ConstructionBase v1.5.6 (<v1.5.8): SymbolicUtils
⌃ [2b5f629d] DiffEqBase v6.171.0 (<v6.173.1)
⌅ [459566f4] DiffEqCallbacks v3.9.1 (<v4.5.0): ModelingToolkit
⌅ [a0c0ee7d] DifferentiationInterface v0.6.52 (<v0.7.0): NLSolversBase, NonlinearSolve, OptimizationBase, SciMLJacobianOperators, SimpleNonlinearSolve
⌃ [31c24e10] Distributions v0.25.119 (<v0.25.120)
⌅ [7c1d4256] DynamicPolynomials v0.5.7 (<v0.6.1): SymbolicUtils, Symbolics
⌅ [06fc5a27] DynamicQuantities v0.13.2 (<v1.8.0): ModelingToolkit
⌃ [7da242da] Enzyme v0.13.41 (<v0.13.43)
⌅ [6b7a57c9] Expronicon v0.8.5 (<v0.10.14): ModelingToolkit
⌅ [f6369f11] ForwardDiff v0.10.38 (<v1.0.1): ADNLPModels, DiffEqCallbacks, ModelingToolkit, NonconvexCore, NonconvexUtils, NonlinearSolve, SimpleNonlinearSolve, SparseDiffTools, Symbolics
⌅ [d9f16b24] Functors v0.4.12 (<v0.5.2): DiffEqCallbacks
⌃ [61eb1bfa] GPUCompiler v1.4.0 (<v1.4.1)
⌅ [d1acc4aa] IntervalArithmetic v0.20.9 (<v0.22.34): NonconvexCore
⌅ [98e50ef6] JuliaFormatter v1.0.62 (<v2.1.2): ModelingToolkit
⌅ [ba0b0d4f] Krylov v0.9.10 (<v0.10.1): LinearSolve
⌅ [984bce1d] LambertW v0.4.6 (<v1.0.0): Symbolics
⌅ [7ed4a6bd] LinearSolve v2.39.1 (<v3.12.0): NonlinearSolve
⌃ [961ee093] ModelingToolkit v9.32.0 (<v9.79.0)
⌅ [8913a72c] NonlinearSolve v3.15.1 (<v4.8.0): DiffEqCallbacks, ModelingToolkit
⌃ [36348300] OptimizationOptimJL v0.4.2 (<v0.4.3)
⌃ [90014a1f] PDMats v0.11.34 (<v0.11.35)
⌅ [c36e90e8] PowerModels v0.19.10 (<v0.21.3) [compat]
⌅ [aea7be01] PrecompileTools v1.2.1 (<v1.3.2): julia
⌃ [6099a3de] PythonCall v0.9.24 (<v0.9.25)
⌃ [0bca4576] SciMLBase v2.86.2 (<v2.89.1)
⌃ [19f34311] SciMLJacobianOperators v0.1.3 (<v0.1.5)
⌅ [c0aeaf25] SciMLOperators v0.3.14 (<v0.4.0): DiffEqBase, LinearSolve, NonlinearSolve, SciMLBase, SciMLJacobianOperators, SparseDiffTools
⌅ [727e6d20] SimpleNonlinearSolve v1.12.3 (<v2.5.0): ModelingToolkit, NonlinearSolve
⌃ [47a9eef4] SparseDiffTools v2.23.1 (<v2.26.0)
⌃ [860ef19b] StableRNGs v1.0.2 (<v1.0.3)
⌃ [19f23fe9] SymbolicLimits v0.2.1 (<v0.2.2)
⌅ [d1185830] SymbolicUtils v2.1.3 (<v3.27.0): ModelingToolkit, SymbolicLimits, Symbolics
⌅ [0c5d862f] Symbolics v5.36.0 (<v6.39.1): ModelingToolkit, NonconvexUtils
⌅ [8ea1fca8] TermInterface v0.4.1 (<v2.0.0): SymbolicUtils, Symbolics
⌃ [1986cc42] Unitful v1.22.0 (<v1.22.1)
⌅ [e88e6eb3] Zygote v0.6.77 (<v0.7.7): NonconvexCore, NonconvexIpopt, NonconvexUtils
⌃ [83423d85] Cairo_jll v1.18.4+0 (<v1.18.5+0)
⌅ [f218ff0c] ColPack_jll v0.3.0+0 (<v0.4.3+0): ColPack
⌅ [7cc45869] Enzyme_jll v0.0.175+0 (<v0.0.179+0): Enzyme
⌅ [b22a6f82] FFMPEG_jll v4.4.4+1 (<v7.1.0+0): FFMPEG
⌃ [7746bdde] Glib_jll v2.82.4+0 (<v2.84.0+0)
⌃ [e33a78d0] Hwloc_jll v2.12.0+0 (<v2.12.1+0)
⌅ [e9f186c6] Libffi_jll v3.2.2+2 (<v3.4.7+0): Glib_jll, HarfBuzz_jll, Wayland_jll
⌅ [d7ed1dd3] MUMPS_seq_jll v500.700.301+0 (<v500.800.0+0): Ipopt_jll
⌅ [656ef2d0] OpenBLAS32_jll v0.3.24+0 (<v0.3.29+0): julia
⌅ [30392449] Pixman_jll v0.44.2+0 (<v0.46.0+0): Cairo_jll
⌅ [c0090381] Qt6Base_jll v6.7.1+1 (<v6.8.2+1): GR_jll, Qt6Declarative_jll, Qt6ShaderTools_jll, Qt6Wayland_jll
⌅ [629bc702] Qt6Declarative_jll v6.7.1+2 (<v6.8.2+1): Qt6Wayland_jll
⌅ [ce943373] Qt6ShaderTools_jll v6.7.1+1 (<v6.8.2+1): Qt6Declarative_jll
⌃ [e99dba38] Qt6Wayland_jll v6.7.1+1 (<v6.8.2+0)
⌅ [319450e9] SPRAL_jll v2024.5.8+0 (<v2025.1.8+0): Ipopt_jll
⌃ [a2964d1f] Wayland_jll v1.21.0+2 (<v1.23.1+0)
⌅ [02c8fc9c] XML2_jll v2.13.6+1 (<v2.14.1+0): Gettext_jll, Wayland_jll
⌃ [b53b4c65] libpng_jll v1.6.47+0 (<v1.6.48+0)
⌅ [1270edf5] x264_jll v2021.5.5+0 (<v10164.0.1+0): FFMPEG_jll
⌅ [dfaa095f] x265_jll v3.5.0+0 (<v4.1.0+0): FFMPEG_jll
julia> versioninfo()
Julia Version 1.10.9
Commit 5595d20a287 (2025-03-10 12:51 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 36 × Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, cascadelake)
Threads: 36 default, 0 interactive, 18 GC (on 36 virtual cores)
Environment:
  LD_LIBRARY_PATH = /tmp/.mount_CursorMleN5b/usr/lib/:/tmp/.mount_CursorMleN5b/usr/lib32/:/tmp/.mount_CursorMleN5b/usr/lib64/:/tmp/.mount_CursorMleN5b/lib/:/tmp/.mount_CursorMleN5b/lib/i386-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/x86_64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib/aarch64-linux-gnu/:/tmp/.mount_CursorMleN5b/lib32/:/tmp/.mount_CursorMleN5b/lib64/:
  JULIA_NUM_THREADS = auto

Yup that’s the patch. Still, getting to latest versions would be good, but that should get things unblocked.

Thank you Chris! But yes, I’ll try to see what the actual block is on my machine