Julia 1.13 - precompilation error for LibCURL since update

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:

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.

[ 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.

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

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.

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

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.

Are you aware of the fact you can have different manifests for different versions of Julia?

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.

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

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

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

juliaup add pr63134
julia +pr63134

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

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)

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.