# Cannot install OrdinaryDiffEq in Julia 1.10.11

**URL:** <https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518>\
**Category:** General Usage\
**Tags:** installation\
**Created:** [April 2, 2026, 3:13pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518 "2026-04-02T15:13:48Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 3:13pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/1 "2026-04-02T15:13:48Z")

</div>

Hi, I was trying to install a new Julia (well, old) version to find a bug.

So, I have used `juliaup add 1.10` which results in the installation of the version `1.10.11`. I have started that version with `julia +1.10 --project=julia-1.10-env` to recreate a required environment by hand. Then in the package manager I have typed `add OrdinaryDiffEq`, which resulted in this lovely message:

```julia-auto
Precompiling packages finished.
  0 dependencies successfully precompiled in 36 seconds. 191 already precompiled.
  5 dependencies errored.
  For a report of the errors see `julia> err`. To retry use `pkg> precompile`

```

Well, zero success is also a success, I guess 🙂

After doing `julia>err`, I get this:

```julia-auto
PkgPrecompileError: The following 1 direct dependency failed to precompile:

OrdinaryDiffEq

Failed to precompile OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] to "/home/dima/.julia/compiled/v1.10/OrdinaryDiffEq/jl_29PgOF".
ERROR: LoadError: MethodError: no method matching (FunctionWrappersWrappers.FunctionWrappersWrapper{Tuple{FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, Float64}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, SciMLBase.NullParameters, Float64}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{Float64}, SciMLBase.NullParameters, ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, SciMLBase.NullParameters, ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}}}, false})(::Tuple{FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, Float64}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, SciMLBase.NullParameters, Float64}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{Float64}, SciMLBase.NullParameters, ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, SciMLBase.NullParameters, ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}}})
Stacktrace:
  [1] wrapfun_iip(ff::Function, inputs::Tuple{Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, Float64}, ::Val{1})
    @ DiffEqBaseForwardDiffExt ~/.julia/packages/DiffEqBase/vTdBp/ext/DiffEqBaseForwardDiffExt.jl:121
  [2] promote_f(f::SciMLBase.ODEFunction{true, SciMLBase.AutoSpecialize, typeof(OrdinaryDiffEqCore.lorenz), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, ::Val{SciMLBase.AutoSpecialize}, u0::Vector{Float64}, p::SciMLBase.NullParameters, t::Float64, ::Val{true}, ::Val{1})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vTdBp/src/solve.jl:844
  [3] get_concrete_problem(prob::SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, SciMLBase.ODEFunction{true, SciMLBase.AutoSpecialize, typeof(OrdinaryDiffEqCore.lorenz), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, isadapt::Bool; alg::OrdinaryDiffEqSDIRK.TRBDF2{0, ADTypes.AutoForwardDiff{nothing, Nothing}, Nothing, OrdinaryDiffEqNonlinearSolve.NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Nothing}, typeof(OrdinaryDiffEqCore.DEFAULT_PRECS), Val{:forward}(), true, nothing, typeof(OrdinaryDiffEqCore.trivial_limiter!)}, kwargs::@Kwargs{u0::Vector{Float64}, p::SciMLBase.NullParameters})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vTdBp/src/solve.jl:676
  [4] solve_up(prob::SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, SciMLBase.ODEFunction{true, SciMLBase.AutoSpecialize, typeof(OrdinaryDiffEqCore.lorenz), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, sensealg::Nothing, u0::Vector{Float64}, p::SciMLBase.NullParameters, args::OrdinaryDiffEqSDIRK.TRBDF2{0, ADTypes.AutoForwardDiff{nothing, Nothing}, Nothing, OrdinaryDiffEqNonlinearSolve.NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Nothing}, typeof(OrdinaryDiffEqCore.DEFAULT_PRECS), Val{:forward}(), true, nothing, typeof(OrdinaryDiffEqCore.trivial_limiter!)}; originator::SciMLBase.ChainRulesOriginator, kwargs::@Kwargs{})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vTdBp/src/solve.jl:624
  [5] solve(prob::SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, SciMLBase.ODEFunction{true, SciMLBase.AutoSpecialize, typeof(OrdinaryDiffEqCore.lorenz), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, args::OrdinaryDiffEqSDIRK.TRBDF2{0, ADTypes.AutoForwardDiff{nothing, Nothing}, Nothing, OrdinaryDiffEqNonlinearSolve.NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Nothing}, typeof(OrdinaryDiffEqCore.DEFAULT_PRECS), Val{:forward}(), true, nothing, typeof(OrdinaryDiffEqCore.trivial_limiter!)}; sensealg::Nothing, u0::Nothing, p::Nothing, wrap::Val{true}, kwargs::@Kwargs{})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vTdBp/src/solve.jl:587
  [6] solve(prob::SciMLBase.ODEProblem{Vector{Float64}, Tuple{Float64, Float64}, true, SciMLBase.NullParameters, SciMLBase.ODEFunction{true, SciMLBase.AutoSpecialize, typeof(OrdinaryDiffEqCore.lorenz), LinearAlgebra.UniformScaling{Bool}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, typeof(SciMLBase.DEFAULT_OBSERVED), Nothing, Nothing, Nothing, Nothing}, @Kwargs{}, SciMLBase.StandardODEProblem}, args::OrdinaryDiffEqSDIRK.TRBDF2{0, ADTypes.AutoForwardDiff{nothing, Nothing}, Nothing, OrdinaryDiffEqNonlinearSolve.NLNewton{Rational{Int64}, Rational{Int64}, Rational{Int64}, Nothing}, typeof(OrdinaryDiffEqCore.DEFAULT_PRECS), Val{:forward}(), true, nothing, typeof(OrdinaryDiffEqCore.trivial_limiter!)})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vTdBp/src/solve.jl:575
  [7] macro expansion
    @ ~/.julia/packages/OrdinaryDiffEqSDIRK/1f1PI/src/OrdinaryDiffEqSDIRK.jl:111 [inlined]
  [8] macro expansion
    @ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:78 [inlined]
  [9] top-level scope
    @ ~/.julia/packages/OrdinaryDiffEqSDIRK/1f1PI/src/OrdinaryDiffEqSDIRK.jl:50
 [10] include
    @ ./Base.jl:495 [inlined]
 [11] 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:2306
 [12] top-level scope
    @ stdin:5
in expression starting at /home/dima/.julia/packages/OrdinaryDiffEqSDIRK/1f1PI/src/OrdinaryDiffEqSDIRK.jl:1
in expression starting at stdin:5
ERROR: LoadError: Failed to precompile OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf] to "/home/dima/.julia/compiled/v1.10/OrdinaryDiffEqSDIRK/jl_qoJ2jV".
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; loadable_exts::Nothing)
    @ Base ./loading.jl:2547
  [3] compilecache
    @ ./loading.jl:2414 [inlined]
  [4] (::Base.var"#973#974"{Base.PkgId})()
    @ Base ./loading.jl:2058
  [5] mkpidlock(f::Base.var"#973#974"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
    @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.11+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
  [6] #mkpidlock#6
    @ ~/.julia/juliaup/julia-1.10.11+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
  [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
    @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.11+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
  [8] #invokelatest#2
    @ ./essentials.jl:894 [inlined]
  [9] invokelatest
    @ ./essentials.jl:889 [inlined]
 [10] maybe_cachefile_lock(f::Base.var"#973#974"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
    @ Base ./loading.jl:3062
 [11] maybe_cachefile_lock
    @ ./loading.jl:3059 [inlined]
 [12] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:2044
 [13] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1886
 [14] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [15] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [16] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1877
 [17] macro expansion
    @ ./loading.jl:1864 [inlined]
 [18] macro expansion
    @ ./lock.jl:270 [inlined]
 [19] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1827
 [20] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [21] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [22] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1820
 [23] include
    @ ./Base.jl:495 [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::Nothing)
    @ Base ./loading.jl:2306
 [25] top-level scope
    @ stdin:5
in expression starting at /home/dima/.julia/packages/OrdinaryDiffEq/l3jV2/src/OrdinaryDiffEq.jl:1
in expression starting at stdin:

```

Could somebody help me with this? Thank you!

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [April 2, 2026, 3:53pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/2 "2026-04-02T15:53:20Z")

</div>

I tested on Ubuntu 24.04, and I can confirm the problem:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/b/e/be731cedf890a7c6d3d13c7f35ddf54bf46ad2e0.png)

Do you really need to use Julia 1.10? I dropped the support for 1.10 a month ago because too many things start to fail.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 2, 2026, 4:00pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/3 "2026-04-02T16:00:07Z")

</div>

I’ll start with a yank.

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:15pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/4 "2026-04-02T16:15:34Z")

</div>

I have a multi-language project and wanted to test different combinations of Python and Julia: for Julia, there are two officially supported versions right now (1.10 and 1.12).

Hmm, it seems that the problem is not exactly with the older version of Julia, as I have installed 1.12, and it seems that `OrdinaryDiffEq` are not precompilable again:

```julia-auto
dinaryDiffEqRosenbrock
  ✗ OrdinaryDiffEqSDIRK
  ✗ OrdinaryDiffEqBDF
  ✗ OrdinaryDiffEqDefault
  ✗ OrdinaryDiffEq
Precompiling packages finished.
  0 dependencies successfully precompiled in 38 seconds. 220 already precompiled.
  5 dependencies errored.
  For a report of the errors see `julia> err`. To retry use `pkg> precompile`

```

and `julia>err`:

```julia-auto
Failed to precompile OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] to "/home/dima/.julia/compiled/v1.12/OrdinaryDiffEq/jl_2dTy2v".
ERROR: LoadError: MethodError: no method matching (FunctionWrappersWrappers.FunctionWrappersWrapper{Tuple{FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters,
 Float64}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.Ordinary
DiffEqTag, Float64}, Float64, 1}}, SciMLBase.NullParameters, Float64}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}},
 Vector{Float64}, SciMLBase.NullParameters, ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDi
ff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, SciMLBase.NullParameters, ForwardDiff.Dual{ForwardDiff.Tag
{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}}}, false})(::Tuple{FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, Float64}}, FunctionWrappers.Func
tionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}
, SciMLBase.NullParameters, Float64}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, Vector{Float64}, SciMLBase.NullP
arameters, ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}}, FunctionWrappers.FunctionWrapper{Nothing, Tuple{Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqT
ag, Float64}, Float64, 1}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Float64}, Float64, 1}}, SciMLBase.NullParameters, ForwardDiff.Dual{ForwardDiff.Tag{DiffEqBase.OrdinaryDiffEqTag, Fl
oat64}, Float64, 1}}}})

```

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:17pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/5 "2026-04-02T16:17:00Z")

</div>

I don’t know really understand what it means, sorry.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [April 2, 2026, 4:17pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/6 "2026-04-02T16:17:04Z")

</div>

If you have a working project, freeze the version numbers of key packages (or the manifest).

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:18pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/7 "2026-04-02T16:18:41Z")

</div>

I need a project working reliably with at least several combinations of versions of Julia and Python, as I am developing software for the public.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 2, 2026, 4:19pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/8 "2026-04-02T16:19:27Z")

</div>

DiffEqBase v1.24.0 is being yanked and v1.24.1 is a hotfix patch that should handle this. Sorry, the FunctionWrappersWrappers.jl compat bump was a bit of a “it’s a dependency everywhere” thing making it hard to test, and so it was tested everywhere it could, but then when downstream libraries also did the bump (AD libraries in particular), it “unleashed the Kraken”, bumping FWW in cases where it was previously blocked, and unveiled that there was an AD path that wasn’t using the backwards compatible syntax. That’s handled in the hotfix.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [April 2, 2026, 4:30pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/9 "2026-04-02T16:30:36Z")

</div>

> [@dmitry-kabanov](#):
>
> I need a project working reliably with at least several combinations of versions of Julia and Python, as I am developing software for the public.

But then you should fix the OrdinaryDiffEq version to a known-good one… I don’t know how you (or your users) instantiate this project, but I always use a custom install script that:

- copies Manifest-v1.xx.toml.default to Manifest-v1.xx.toml, where xx is the currently used, minor Julia version
- calls Pkg.resolve() and Pkg.instantiate()
- might also execute using statements to force pre-compilation

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:33pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/10 "2026-04-02T16:33:18Z")

</div>

I try this:

```julia-auto
(julia-1.12-env) pkg> add DiffEqBase@1.24.1
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package DiffEqBase [2b5f629d]:
 DiffEqBase [2b5f629d] log:
 ├─possible versions are: 3.13.2 - 6.214.0 or uninstalled
 └─restricted to versions 1.24.1 by an explicit requirement — no versions left

```

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:34pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/11 "2026-04-02T16:34:40Z")

</div>

I have a Manifest.toml commited to Git, but now I intentionally start the environment (the `--project=` argument) in an empty directory, to do things by hand, because my current `Manifest.toml` is for Julia 1.11.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [April 2, 2026, 4:37pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/12 "2026-04-02T16:37:46Z")

</div>

> [@dmitry-kabanov](#):
>
> my current `Manifest.toml` is for Julia 1.11.

Put multiple default manifests into git, one for each major Julia version. Like Manfest-v1.11.toml.default, Manifest-v1.12.toml.default etc, and let the install script copy the default version for the currently active Julia version.

Example: [KiteModels.jl/bin/install at main · OpenSourceAWE/KiteModels.jl · GitHub](https://github.com/OpenSourceAWE/KiteModels.jl/blob/main/bin/install)

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [April 2, 2026, 4:39pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/13 "2026-04-02T16:39:38Z")

</div>

> [@dmitry-kabanov](#):
>
> `(julia-1.12-env) pkg> add DiffEqBase@1.24.1`

You were 3 minutes too early. The hotfix is now released. Give it a try.

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:40pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/14 "2026-04-02T16:40:19Z")

</div>

Ok, cool, I did not know it is possible.

Thank you for the idea with `Manifest.toml`: I was able to install for Julia 1.12 `OrdinaryDiffEq@6.102.1` from my current `Manifest.toml` for Julia 1.11 🙂

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:41pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/15 "2026-04-02T16:41:58Z")

</div>

No, it gives the same message for me.

Isn’t line “possible versions are: 3.13.2 - 6.214.0 or uninstalled” saying that 1.24.1 does not exist?

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [April 2, 2026, 4:46pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/16 "2026-04-02T16:46:36Z")

</div>

This line might help:

```julia-auto
export JULIA_PKG_SERVER_REGISTRY_PREFERENCE=eager

```

---

<div class="post-metadata">

**Author:** ![dmitry-kabanov](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmitry-kabanov/32/52639_2.png) [@dmitry-kabanov](https://discourse.julialang.org/u/dmitry-kabanov)\
**Post date:** [April 2, 2026, 4:50pm UTC](https://discourse.julialang.org/t/cannot-install-ordinarydiffeq-in-julia-1-10-11/136518/17 "2026-04-02T16:50:06Z")

</div>

Dear @ufechner7 and @ChrisRackauckas, thank you very much for your help! I have `OrdinaryDiffEq.jl` installed and can test it for compatibility.
