# Julia 1.13 - precompilation error for LibCURL since update

**URL:** <https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336>\
**Category:** New to Julia\
**Created:** [September 10, 2026, 2:35pm UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336 "2026-09-10T14:35:59Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![shrdlu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shrdlu/32/210822_2.png) [@shrdlu](https://discourse.julialang.org/u/shrdlu)\
**Post date:** [September 10, 2026, 2:35pm UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/1 "2026-09-10T14:35:59Z")

</div>

I just updated one of my systems to Julia 1.13, and am looking at a peculiar error when I try to load and upgrade some of my global environments.

So, my setup is using some variation of below shell script to automate some of the global environment upgrades:

```julia-auto
for d in ~/.julia/environments/*/; do n=$(basename "$d"); julia --startup-file=no --project=@"$n" -e 'using Pkg; Pkg.status(); Pkg.update()'; done

```

And I’m consistently getting precompilation related errors for LibCURL\_jll, LibCURL, Downloads and Pkg.

```julia-auto
[Info: Precompiling Pkg [44cfe95a-1eb2-52ea-b672-e2afdf69b78f] (caches not reused: 2 for different compilation options)
ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("f43a241f-c20a-4ad4-852c-f6b1247861c6"), "Downloads") not available with flags CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)

in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/PlatformEngines.jl:5
in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/Pkg.jl:3
in expression starting at stdin:5
  ✗ LibCURL_jll
  ✗ LibCURL
  ✗ Downloads
  ✗ Pkg
Precompiling Pkg finished.
  0 dependencies successfully precompiled in 4 seconds. 22 already precompiled.

┌ Downloads
│ ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"), "LibCURL") not available with flags CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)

```

And so on and so forth.

Activating some of the offending global environments manually shows above errors during startup again, though curiously I can still get into the package mode with ‘]’ and run update, which updates all the packages seemingly without issues.

Anyone have any idea what could be happening here, and how I could fix it?

Oh - just adding - I’m on Ubuntu LTS 24.04, and this behavior is seen across two separate machines just freshly updated to 1.13, across different types of environments.

---

<div class="post-metadata">

**Author:** ![DavidMedin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidmedin/32/222230_2.png) [@DavidMedin](https://discourse.julialang.org/u/DavidMedin)\
**Post date:** [September 10, 2026, 2:40pm UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/2 "2026-09-10T14:40:18Z")

</div>

Yup, I was getting this error too. I switched back to 1.12.7 because of this. I hope this gets fixed soon!

---

<div class="post-metadata">

**Author:** ![shrdlu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shrdlu/32/210822_2.png) [@shrdlu](https://discourse.julialang.org/u/shrdlu)\
**Post date:** [September 10, 2026, 2:43pm UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/3 "2026-09-10T14:43:25Z")

</div>

Ah, so it’s not just me having weird setup. I’m actually a bit relieved in a way.

For anyone involved with fixing the issue, I’d be more than happy to run tests or provide more in-depth info if it could help.

---

<div class="post-metadata">

**Author:** ![ianshmean](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ianshmean/32/216042_2.png) [@ianshmean](https://discourse.julialang.org/u/ianshmean)\
**Post date:** [September 10, 2026, 3:10pm UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/4 "2026-09-10T15:10:17Z")

</div>

Try renaming the existing manifest to Manifest-v1.12.toml

---

<div class="post-metadata">

**Author:** ![shrdlu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shrdlu/32/210822_2.png) [@shrdlu](https://discourse.julialang.org/u/shrdlu)\
**Post date:** [September 11, 2026, 5:17am UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/5 "2026-09-11T05:17:01Z")

</div>

Confirming renaming the manifest seems to get rid of the issue for a couple of environment I tested.

Unfortunately this isn’t a long-term solution since I use Julia for work, and manually pointing manifests back to 1.12 is a bit too much of a hack.

I’ve rolled back to 1.12 for now. Hopefully whatever the issue is gets fixed soon.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [September 11, 2026, 7:29am UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/6 "2026-09-11T07:29:20Z")

</div>

> [@shrdlu](#):
>
> and manually pointing manifests back to 1.12 is a bit too much of a hack.

Are you aware of the fact you can have [different manifests for different versions of Julia](https://pkgdocs.julialang.org/v1/toml-files/#Different-Manifests-for-Different-Julia-versions)?

---

<div class="post-metadata">

**Author:** ![shrdlu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shrdlu/32/210822_2.png) [@shrdlu](https://discourse.julialang.org/u/shrdlu)\
**Post date:** [September 11, 2026, 8:17am UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/7 "2026-09-11T08:17:08Z")

</div>

No, thank you for pointing that out - this lovely language is always full of surprises.

Nevertheless, I don’t think manual-ish re-naming or generating manifests is a real solution to the loading and precompilation issue… It might be okay for internal studies or hobbies, but I have a larger project I’m working on with other people as part of my job.

Not to mention, as I said, it sounds like a chore for dozen+ global environments I’m juggling around.

---

<div class="post-metadata">

**Author:** ![shrdlu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shrdlu/32/210822_2.png) [@shrdlu](https://discourse.julialang.org/u/shrdlu)\
**Post date:** [September 12, 2026, 8:56pm UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/8 "2026-09-12T20:56:55Z")

</div>

For anyone tracking it, I filed an issue on Julia github since this seems to be a legitimate problem across multiple users and setups. The write up there has full description of the common errors, in my case it’s mostly about libCURL/libCURL\_jll and packages

> <https://github.com/JuliaLang/julia/issues/63099>
>
> Tested across two different machines with varying global environment setup, both… running Ubuntu 24.04 LTS.
> 
> I have a Julia global environment update script that looks something like this:
> 
> \`\`\`
> for d in ~/.julia/environments/\*/; do n=$(basename "$d"); echo "== $n =="; julia --startup-file=no --project=@"$n" -e 'using Pkg; Pkg.status(); Pkg.update()'; echo ""; done
> \`\`\`
> 
> After updating system default Julia to 1.13 via juliaup, running above update script results in LoadError messages for a couple of recurring key packages:
> 
> 
> For example, here's load error message from an environment containing Tachikoma.jl
> \`\`\`
> ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("3161d3a3-bdf6-5164-811a-617609db77b4"), "Zstd\_jll") not available with flags CacheFlags(; use\_pkgimages=true, debug\_level=1, check\_bounds=0, inline=true, opt\_level=2)
> Stacktrace:
> \[1\] error(s::String)
> @ Base ./error.jl:44
> \[2\] \_\_require\_prelocked(pkg::Base.PkgId, env::String)
> @ Base ./loading.jl:2736
> \[3\] \_require\_prelocked(uuidkey::Base.PkgId, env::String)
> @ Base ./loading.jl:2597
> \[4\] macro expansion
> @ ./loading.jl:2525 \[inlined\]
> \[5\] macro expansion
> @ ./lock.jl:376 \[inlined\]
> \[6\] \_\_require(into::Module, mod::Symbol)
> @ Base ./loading.jl:2489
> \[7\] require
> @ ./loading.jl:2465 \[inlined\]
> \[8\] eval\_import\_path
> @ ./module.jl:36 \[inlined\]
> \[9\] eval\_import\_path\_all(at::Module, path::Expr, keyword::String)
> @ Base ./module.jl:60
> \[10\] \_eval\_using(to::Module, path::Expr)
> @ Base ./module.jl:137
> \[11\] top-level scope
> @ ~/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/LibCURL\_jll/src/LibCURL\_jll.jl:6
> \[12\] include(mod::Module, \_path::String)
> @ Base ./Base.jl:309
> \[13\] 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:3177
> \[14\] top-level scope
> @ stdin:5
> \[15\] eval(m::Module, e::Any)
> @ Core ./boot.jl:489
> \[16\] include\_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
> @ Base ./loading.jl:3016
> \[17\] include\_string
> @ ./loading.jl:3026 \[inlined\]
> \[18\] exec\_options(opts::Base.JLOptions)
> @ Base ./client.jl:342
> \[19\] \_start()
> @ Base ./client.jl:577
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/LibCURL\_jll/src/LibCURL\_jll.jl:5
> in expression starting at stdin:5
> 
> 1 dependency had output during precompilation:
> ┌ LibCURL\_jll
> │ \[Output was shown above\]
> └  
> ERROR: LoadError: The following 1 package failed to precompile:
> 
> LibCURL\_jll 
> Failed to precompile LibCURL\_jll \[deac9b47-8bc7-5906-a0fe-35ac56dc84c0\] to "/home/.julia/compiled/v1.13/LibCURL\_jll/jl\_RRI3M3" (ProcessExited(1)).
> 
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/LibCURL/src/LibCURL.jl:2
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Downloads/src/Curl/Curl.jl:1
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Downloads/src/Downloads.jl:1
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/PlatformEngines.jl:5
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/Pkg.jl:3
> \`\`\`
> 
> Here's about the same load error message when trying to update another global environment containing 
> 
> CairoMakie
> HDF5
> NNlib
> NPZ
> Statistics
> 
> \`\`\`
> \[Info: Precompiling Pkg \[44cfe95a-1eb2-52ea-b672-e2afdf69b78f\] (caches not reused: 2 for different compilation options)
> ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("f43a241f-c20a-4ad4-852c-f6b1247861c6"), "Downloads") not available with flags CacheFlags(; use\_pkgimages=true, debug\_level=1, check\_bounds=0, inline=true, opt\_level=2)
> Stacktrace:
> \[1\] error(s::String)
> @ Base ./error.jl:44
> \[2\] \_\_require\_prelocked(pkg::Base.PkgId, env::String)
> @ Base ./loading.jl:2736
> \[3\] \_require\_prelocked(uuidkey::Base.PkgId, env::String)
> @ Base ./loading.jl:2597
> \[4\] macro expansion
> @ ./loading.jl:2525 \[inlined\]
> \[5\] macro expansion
> @ ./lock.jl:376 \[inlined\]
> \[6\] \_\_require(into::Module, mod::Symbol)
> @ Base ./loading.jl:2489
> \[7\] require
> @ ./loading.jl:2465 \[inlined\]
> \[8\] eval\_import\_path
> @ ./module.jl:36 \[inlined\]
> \[9\] eval\_import\_path\_all(at::Module, path::Expr, keyword::String)
> @ Base ./module.jl:60
> \[10\] \_eval\_using(to::Module, path::Expr)
> @ Base ./module.jl:137
> \[11\] top-level scope
> @ ~/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/PlatformEngines.jl:7
> \[12\] include(mapexpr::Function, mod::Module, \_path::String)
> @ Base ./Base.jl:310
> \[13\] top-level scope
> @ ~/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/Pkg.jl:110
> \[14\] include(mod::Module, \_path::String)
> @ Base ./Base.jl:309
> \[15\] 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:3177
> \[16\] top-level scope
> @ stdin:5
> \[17\] eval(m::Module, e::Any)
> @ Core ./boot.jl:489
> \[18\] include\_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
> @ Base ./loading.jl:3016
> \[19\] include\_string
> @ ./loading.jl:3026 \[inlined\]
> \[20\] exec\_options(opts::Base.JLOptions)
> @ Base ./client.jl:342
> \[21\] \_start()
> @ Base ./client.jl:577
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/PlatformEngines.jl:5
> in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Pkg/src/Pkg.jl:3
> in expression starting at stdin:5
> ✗ LibCURL\_jll
> ✗ LibCURL
> ✗ Downloads
> ✗ Pkg
> Precompiling Pkg finished.
> 0 dependencies successfully precompiled in 4 seconds. 22 already precompiled.
> 
> 4 dependencies had output during precompilation:
> ┌ Downloads
> │ ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"), "LibCURL") not available with flags CacheFlags(; use\_pkgimages=true, debug\_level=1, check\_bounds=0, inline=true, opt\_level=2)
> │ Stacktrace:
> │ \[1\] error(s::String)
> │ @ Base ./error.jl:44
> │ \[2\] \_\_require\_prelocked(pkg::Base.PkgId, env::String)
> │ @ Base ./loading.jl:2736
> │ \[3\] \_require\_prelocked(uuidkey::Base.PkgId, env::String)
> │ @ Base ./loading.jl:2597
> │ \[4\] macro expansion
> │ @ ./loading.jl:2525 \[inlined\]
> │ \[5\] macro expansion
> │ @ ./lock.jl:376 \[inlined\]
> │ \[6\] \_\_require(into::Module, mod::Symbol)
> │ @ Base ./loading.jl:2489
> │ \[7\] require
> │ @ ./loading.jl:2465 \[inlined\]
> │ \[8\] eval\_import\_path
> │ @ ./module.jl:36 \[inlined\]
> │ \[9\] eval\_import\_path\_all(at::Module, path::Expr, keyword::String)
> │ @ Base ./module.jl:60
> │ \[10\] \_eval\_using(to::Module, path::Expr)
> │ @ Base ./module.jl:137
> │ \[11\] top-level scope
> │ @ ~/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Downloads/src/Curl/Curl.jl:30
> │ \[12\] include(mapexpr::Function, mod::Module, \_path::String)
> │ @ Base ./Base.jl:310
> │ \[13\] top-level scope
> │ @ ~/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Downloads/src/Downloads.jl:20
> │ \[14\] include(mod::Module, \_path::String)
> │ @ Base ./Base.jl:309
> │ \[15\] 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:3177
> │ \[16\] top-level scope
> │ @ stdin:5
> │ \[17\] eval(m::Module, e::Any)
> │ @ Core ./boot.jl:489
> │ \[18\] include\_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
> │ @ Base ./loading.jl:3016
> │ \[19\] include\_string
> │ @ ./loading.jl:3026 \[inlined\]
> │ \[20\] exec\_options(opts::Base.JLOptions)
> │ @ Base ./client.jl:342
> │ \[21\] \_start()
> │ @ Base ./client.jl:577
> │ in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Downloads/src/Curl/Curl.jl:1
> │ in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/Downloads/src/Downloads.jl:1
> │ in expression starting at stdin:5
> └  
> ┌ LibCURL\_jll
> │ ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("3161d3a3-bdf6-5164-811a-617609db77b4"), "Zstd\_jll") not available with flags CacheFlags(; use\_pkgimages=true, debug\_level=1, check\_bounds=0, inline=true, opt\_level=2)
> │ Stacktrace:
> │ \[1\] error(s::String)
> │ @ Base ./error.jl:44
> │ \[2\] \_\_require\_prelocked(pkg::Base.PkgId, env::String)
> │ @ Base ./loading.jl:2736
> │ \[3\] \_require\_prelocked(uuidkey::Base.PkgId, env::String)
> │ @ Base ./loading.jl:2597
> │ \[4\] macro expansion
> │ @ ./loading.jl:2525 \[inlined\]
> │ \[5\] macro expansion
> │ @ ./lock.jl:376 \[inlined\]
> │ \[6\] \_\_require(into::Module, mod::Symbol)
> │ @ Base ./loading.jl:2489
> │ \[7\] require
> │ @ ./loading.jl:2465 \[inlined\]
> │ \[8\] eval\_import\_path
> │ @ ./module.jl:36 \[inlined\]
> │ \[9\] eval\_import\_path\_all(at::Module, path::Expr, keyword::String)
> │ @ Base ./module.jl:60
> │ \[10\] \_eval\_using(to::Module, path::Expr)
> │ @ Base ./module.jl:137
> │ \[11\] top-level scope
> │ @ ~/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/LibCURL\_jll/src/LibCURL\_jll.jl:6
> │ \[12\] include(mod::Module, \_path::String)
> │ @ Base ./Base.jl:309
> │ \[13\] 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:3177
> │ \[14\] top-level scope
> │ @ stdin:5
> │ \[15\] eval(m::Module, e::Any)
> │ @ Core ./boot.jl:489
> │ \[16\] include\_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
> │ @ Base ./loading.jl:3016
> │ \[17\] include\_string
> │ @ ./loading.jl:3026 \[inlined\]
> │ \[18\] exec\_options(opts::Base.JLOptions)
> │ @ Base ./client.jl:342
> │ \[19\] \_start()
> │ @ Base ./client.jl:577
> │ in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/LibCURL\_jll/src/LibCURL\_jll.jl:5
> │ in expression starting at stdin:5
> └  
> ┌ Pkg
> │ \[Output was shown above\]
> └  
> ┌ LibCURL
> │ ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("deac9b47-8bc7-5906-a0fe-35ac56dc84c0"), "LibCURL\_jll") not available with flags CacheFlags(; use\_pkgimages=true, debug\_level=1, check\_bounds=0, inline=true, opt\_level=2)
> │ Stacktrace:
> │ \[1\] error(s::String)
> │ @ Base ./error.jl:44
> │ \[2\] \_\_require\_prelocked(pkg::Base.PkgId, env::String)
> │ @ Base ./loading.jl:2736
> │ \[3\] \_require\_prelocked(uuidkey::Base.PkgId, env::String)
> │ @ Base ./loading.jl:2597
> │ \[4\] macro expansion
> │ @ ./loading.jl:2525 \[inlined\]
> │ \[5\] macro expansion
> │ @ ./lock.jl:376 \[inlined\]
> │ \[6\] \_\_require(into::Module, mod::Symbol)
> │ @ Base ./loading.jl:2489
> │ \[7\] require
> │ @ ./loading.jl:2465 \[inlined\]
> │ \[8\] eval\_import\_path
> │ @ ./module.jl:36 \[inlined\]
> │ \[9\] eval\_import\_path\_all(at::Module, path::Expr, keyword::String)
> │ @ Base ./module.jl:60
> │ \[10\] \_eval\_using(to::Module, path::Expr)
> │ @ Base ./module.jl:137
> │ \[11\] top-level scope
> │ @ ~/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/LibCURL/src/LibCURL.jl:4
> │ \[12\] include(mod::Module, \_path::String)
> │ @ Base ./Base.jl:309
> │ \[13\] 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:3177
> │ \[14\] top-level scope
> │ @ stdin:5
> │ \[15\] eval(m::Module, e::Any)
> │ @ Core ./boot.jl:489
> │ \[16\] include\_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
> │ @ Base ./loading.jl:3016
> │ \[17\] include\_string
> │ @ ./loading.jl:3026 \[inlined\]
> │ \[18\] exec\_options(opts::Base.JLOptions)
> │ @ Base ./client.jl:342
> │ \[19\] \_start()
> │ @ Base ./client.jl:577
> │ in expression starting at /home/.julia/juliaup/julia-1.13.0+0.x64.linux.gnu/share/julia/stdlib/v1.13/LibCURL/src/LibCURL.jl:2
> │ in expression starting at stdin:5
> └  
> ERROR: LoadError: The following 4 packages failed to precompile:
> 
> Downloads 
> Failed to precompile Downloads \[f43a241f-c20a-4ad4-852c-f6b1247861c6\] to "/home/.julia/compiled/v1.13/Downloads/jl\_BzPZ5Z" (ProcessExited(1)).
> 
> LibCURL\_jll 
> Failed to precompile LibCURL\_jll \[deac9b47-8bc7-5906-a0fe-35ac56dc84c0\] to "/home/.julia/compiled/v1.13/LibCURL\_jll/jl\_bLTyfs" (ProcessExited(1)).
> 
> Pkg 
> Failed to precompile Pkg \[44cfe95a-1eb2-52ea-b672-e2afdf69b78f\] to "/home/.julia/compiled/v1.13/Pkg/jl\_1YN2k2" (ProcessExited(1)).
> 
> LibCURL 
> Failed to precompile LibCURL \[b27032c2-a3e7-50c8-80cd-2d36dbcbfd21\] to "/home/.julia/compiled/v1.13/LibCURL/jl\_iIrRMg" (ProcessExited(1)).
> 
> in expression starting at /home/sung/.julia/config/startup.jl:1
> \`\`\`
> 
> Maybe this has something to do with the last line in startup.jl? Here's a copy of my current setup:
> 
> \`\`\`
> using Pkg: Pkg
> 
> atreplinit() do repl
> try
> @eval using Revise
> catch e
> @warn "error while importing Revise" exception=(e, catch\_backtrace())
> end
> end
> \`\`\`
> 
> The 'using Pkg:Pkg' was added since without it startup.jl with Revise and other modules returned errors in pre-1.13 Julia versions. 
> 
> I also had OhMyREPL and some other stuff on there, but removed them prior to latest update attempt that generated those messages. 
> 
> Manually calling up the global julia environment via julia --project=@ of the offending environments show the same precompilation and loading related message. However, ignoring them and going into the package mode '\]' and running 'update' command seems to update the environment. 
> 
> Setup wise I don't think I have anything esoteric... Just a slightly more complex version of above startup.jl integrating with helix editor. 
> 
> Let me know if I can provide more info. Thank you!

I hope I see some sort of feedback on what could be going on sometime.

---

<div class="post-metadata">

**Author:** ![ianshmean](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ianshmean/32/216042_2.png) [@ianshmean](https://discourse.julialang.org/u/ianshmean)\
**Post date:** [September 13, 2026, 3:51am UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/9 "2026-09-13T03:51:15Z")

</div>

Can you try this out with your 1.12-resolved Manifest.toml in place.

> <https://github.com/JuliaLang/julia/pull/63134>
>
> Extends the stdlib healing we do during loading to the parallel precompilation d…ep tree builder
> 
> Claude:
> 
> \---
> 
> Release-1.13 version of #63133.
> 
> A manifest resolved by an earlier Julia version records that version's stdlib dependency lists. Code loading already tolerates this: when a stdlib imports something its manifest entry does not list, \`identify\_package\_env\` falls back to the stdlib's own Project.toml. The parallel precompiler did not, and built its dependency graph straight from the manifest. With a 1.12 manifest on 1.13, \`LibCURL\_jll\` has no edge to \`Zstd\_jll\` (and \`LibGit2\_jll\` none to \`PCRE2\_jll\`), so those are never precompiled before the stdlibs that need them, and the strict worker fails with \`Precompiled image Zstd\_jll not available\`. It only bites when the bundled stdlib caches are not usable, which is why it shows up as the stdlib chain under \`Pkg\` being recompiled.
> 
> \`ExplicitEnv\` now applies the same fallback: for each stdlib entry in the manifest it adds the deps from that stdlib's Project.toml, and a dep missing from the manifest altogether is added as a stdlib node, recursively.
> 
> The existing \`BadStdlibDeps\` test project reproduces the failure as soon as the bundled caches are left out of the depot path, so the test now also runs that way. That run precompiles the \`LibGit2\` chain, so it is slower than the existing cases.
> 
> Fixes #63099

```julia-auto
juliaup add pr63134
julia +pr63134

```

---

<div class="post-metadata">

**Author:** ![shrdlu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/shrdlu/32/210822_2.png) [@shrdlu](https://discourse.julialang.org/u/shrdlu)\
**Post date:** [September 19, 2026, 3:09pm UTC](https://discourse.julialang.org/t/julia-1-13-precompilation-error-for-libcurl-since-update/139336/10 "2026-09-19T15:09:39Z")

</div>

Hi, thanks for getting back.

I finally got around to testing the PR - since I think it’s already been pushed (is that the right term? I’m new to all this) I opted to compile the backports-release-1.13 on a machine with issue and compiled it.

I’ll document the steps here for future reference

```julia-auto
git clone --filter=blob:none https://github.com/JuliaLang/julia.git
git checkout backports-release-1.13
git pull origin backports-release-1.13
make

```

The make command here worked out of the gate since I compile stuff on this machine all the time, for my fellow newbies YMMV

I ran two quick tests using a new temp environment containing the exact packages that produced the reported error (there’s nothing special about these packages - I’m just replicating one of the original conditions)

```julia-auto
CairoMakie
HDF5
NNlib
NPZ
Statistics

```

And loaded the environment both in standard julia 1.13 and again using the newly compiled julia.

Confirming the error is solved in the newly compiled julia. The error shows up as expected when using the current 1.13

I guess we just need to wait until the next minor version update? Or will it be reflected in nightly first?

Pardon the late test, hope this double check helped a little bit. Computer stuff isn’t my full time job haha.

Also appreciate the very fast response & fix time.
