# Error loading OpenSSL\_jll (“version OPENSSL\_3.3.0 not found”) when precompiling MLDatasets

**URL:** <https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977>\
**Category:** General Usage\
**Tags:** question, data\
**Created:** [May 13, 2025, 7:15pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977 "2025-05-13T19:15:53Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![josemanuel22](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/josemanuel22/32/20668_2.png) [@josemanuel22](https://discourse.julialang.org/u/josemanuel22)\
**Post date:** [May 13, 2025, 7:15pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/1 "2025-05-13T19:15:53Z")

</div>

**Environment**

- **Julia version:** 1.8
- **OS:** Linux (64-bit)
- **OpenSSL\_jll artifact path:** `/export/usuarios01/jmfrutos/.julia/artifacts/a696e1e3e6b8d3c2c4b67609357ebc5c35eabde1/lib/libssl.so`

* * *

When I run:

```julia
using MLDatasets

```

I get the following cascade of precompilation failures:

```julia
ERROR: LoadError: InitError: could not load library 
"/export/usuarios01/jmfrutos/.julia/artifacts/.../libssl.so"
/usr/lib64/libcrypto.so.3: version `OPENSSL_3.3.0' not found 
(required by ...)                          
Stacktrace:
 [1] macro expansion at .../JLLWrappers/.../library_generators.jl:63
 [2] __init__ () at .../OpenSSL_jll/.../x86_64-linux-gnu.jl:16
 [3] top-level scope at stdin:1
during initialization of module OpenSSL_jll
in expression starting at .../OpenSSL.jl:1

ERROR: LoadError: Failed to precompile OpenSSL [...]
ERROR: LoadError: Failed to precompile HTTP [...]
ERROR: LoadError: Failed to precompile DataDeps [...]
ERROR: Failed to precompile MLDatasets [...]

```

I am running into a server so I can not Update OpenSSL.

How can I solve this problem? And What is really the problem? Sometimes it works sometimes not

---

<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:** [May 13, 2025, 8:42pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/2 "2025-05-13T20:42:15Z")

</div>

> [@josemanuel22](#):
>
> `/usr/lib64/libcrypto.so.3`

Somehow you’re loading a system library, that’s your issue. Why that’s the case, you need to tell us.

---

<div class="post-metadata">

**Author:** ![fgerick](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fgerick/32/13228_2.png) [@fgerick](https://discourse.julialang.org/u/fgerick)\
**Post date:** [May 14, 2025, 6:53am UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/3 "2025-05-14T06:53:52Z")

</div>

I have the same issue on a local cluster.

EDIT: It was a loaded conda module that linked to the system `libcrypto.so.3` in my case.

---

<div class="post-metadata">

**Author:** ![cjdoris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cjdoris/32/213133_2.png) [@cjdoris](https://discourse.julialang.org/u/cjdoris)\
**Post date:** [May 14, 2025, 8:15am UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/4 "2025-05-14T08:15:50Z")

</div>

Try doing `using OpenSSL_jll` before anything else.

---

<div class="post-metadata">

**Author:** ![Garrett\_Mitchener](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/garrett_mitchener/32/212012_2.png) [@Garrett\_Mitchener](https://discourse.julialang.org/u/Garrett_Mitchener)\
**Post date:** [June 17, 2025, 6:47pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/5 "2025-06-17T18:47:02Z")

</div>

I recently ran into this problem on a cluster running Rocky Linux 9.2, which is basically the same as RHEL 9.2. The problem in my case turned out to be the `LD_LIBRARY_PATH` environment variable, which was being set by a line I added long ago to my `~/.bashrc` file. To fix some other problem, I’d added this line

```julia
export LD_LIBRARY_PATH=/usr/lib64/:....

```

This was setting the `LD_LIBRARY_PATH` environment variable, which the Julia process inherits from the shell. That setting forces the operating system to look in `/usr/lib64` and a few other directories any time a program tries to load a `.so` file. Since `libssl.so` lists that it requires `libcrypto.so.3`, the operating system would find `/usr/lib64/libcrypto.so.3` which is from a system-wide installation of OpenSSL, and try to load that. But the system file is from an older version of OpenSSL than the Julia package can use.

To fix the problem, I commented that line out of my `~/.bashrc` by putting a `#` at the beginning of the line. I logged out & logged back in again. Now nothing is setting that environment variable, and Julia can load MLJ without that error. When Julia loads `libssl.so` from the file in `~/.julia/artifacts/...`, the operating has to also load `libcrypto.so.3` from somewhere, because `libssl.so` lists that it requires it. Since I’m no longer setting `LD_LIBRARY_PATH`, the operating system loads `libcrypto.so.3` from the same directory in `~/.julia/artifacts/...` where it found `libssl.so`, and that’s the correct version.

To see if you have this same problem, go to a shell where you could run `julia` and run

```julia
echo $LD_LIBRARY_PATH

```

If the result is nothing, then you have some other problem. If it shows something like `/usr/lib64:...` then you probably have the same problem I did. I’d start by looking at your shell initialization files `~/.bashrc`, `~/.bash_profile`, … for a line where it sets `LD_LIBRARY_PATH` and try commenting it out.

If your shell initialization files don’t set that variable, I’d look into whether you’re using `conda` or `module` or some other software management tool that might be setting `LD_LIBRARY_PATH` somehow.

You may run into a clash where some other program you use needs to set `LD_LIBRARY_PATH`, in which case you’ll have to figure out some other fix.

---

<div class="post-metadata">

**Author:** ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)\
**Post date:** [June 17, 2025, 8:15pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/6 "2025-06-17T20:15:49Z")

</div>

Running `versioninfo()` in the Julia REPL (or `using InteractiveUtils: versioninfo; versioninfo()` in a script) prints significant environment variables, including `LD_LIBRARY_PATH` (I think), among other things.

Also, to be perfectly clear, `LD_LIBRARY_PATH` misuse is user error. Or system administrator error. Similarly with `LD_PRELOAD`, etc.

---

<div class="post-metadata">

**Author:** ![Sienna](https://avatars.discourse-cdn.com/v4/letter/s/90ced4/32.png) [@Sienna](https://discourse.julialang.org/u/Sienna)\
**Post date:** [August 21, 2025, 10:17pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/7 "2025-08-21T22:17:21Z")

</div>

That solves the issue perfectly, thanks!

---

<div class="post-metadata">

**Author:** ![axsk](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/axsk/32/1952_2.png) [@axsk](https://discourse.julialang.org/u/axsk)\
**Post date:** [December 16, 2025, 2:40pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/8 "2025-12-16T14:40:00Z")

</div>

I am running into this problem now as well with another package depending nestedly on OpenSSL (on Julia 1.11.7 and 1.11.8).

`LD_LIBRARY_PATH` is empty.  
Setting `JULIA_SSL_CA_ROOTS_PATH=""` does not help (even though IIRC it helped initially/at some point).  
`using OpenSSL_jll` prior to anything else does not help either.

Edit: I am running this in a HTC scenario. It does not work on the GPU nodes, however, running from the CPU only nodes this problem does not appear..

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [December 16, 2025, 2:43pm UTC](https://discourse.julialang.org/t/error-loading-openssl-jll-version-openssl-3-3-0-not-found-when-precompiling-mldatasets/128977/9 "2025-12-16T14:43:10Z")

</div>

When I had run into this in the past, it was due to a stacked environment/depot, with two different versions of OpenSSL\_jll at different points in the stack. The quick fix was to pin OpenSSL\_jll’s version to one that was compatible; the better fix was to get rid of the stack entirely.
