HTTP.jl doesn't work

Hello. The HTTP.jl package does not work for me.
I can’t figure out what the problem is.

Failed to precompile HTTP [cd3eb016-35fb-5094-929b-558a96fad6f3] to “C:\Users\Дмитрий\.julia\compiled\v1.11\HTTP\jl_8BA4.tmp”.
ERROR: LoadError: MbedTLS error code -15872: PK - Read/write of file failed

That’s an error during precompilation. You could rety the compilation in a new Julia session with ]precompile.
If it still doesn’t work, then please provide the outputs of ]status and versioninfo(). Wrap these outputs in `` to format them as code :slight_smile:

1 Like

Can you try to move the depot (see Environment Variables · The Julia Language) to a directory without unicode characters in the path?

2 Likes

I confirmed the packages installs and works for me at least in 1.11.1. @giordano, It’s a good guess that Unicode/cyrillic letters might be an issue, but I checked, and all of Дмитрий is Unicode/BMP, and at least MbedTLS supports that (and Windows), in some functions, and then I assume in all.

(@v1.11) pkg> st
⌃ [cd3eb016] HTTP v1.10.10  # this one I installed and latest version should work

You should try (currently latest) version:

(@v1.11) pkg> add HTTP@v1.10.12

Fixes a precompilation warning and segfaults during runtime on julia 1.9, which was introduced by v1.10.11

I.e. not that broken 1.10.11, might apply to later 1.10 and 1.11 Julias. If you confirm that is a problematic version, then can it be retracted?

I’ve tracked down the exact “cause”/error to:

I.e. some of those here:

Such as triggered in several places in this function:

And:

Similar or same cause, and then solution:

julia> download("https://julialang.org/")
ERROR: RequestError: Error reading ca cert file /etc/ssl/certs/ca-certificates.crt - mbedTLS: (-0x3E00) PK - Read/write of file failed while requesting https://julialang.org/

Closing as Julia 1.10.2 has been released.

You can try this on 1.10.x rather than 1.11.x. I suppose the fix should be in 1.11 though too.

Note:

julia> -0x3E00 % Int16  # to convert correctly MbedTLS error codes TO decimal, e.g. Int32 or Int doesn't work as shown:
-15872

julia> Int(-0x3E00)  # misleading
49664

It wasn’t helpful for me to google the decimal error code shown, nor 0xc200 which means the same in Int16. I’ve made a PR to show Windows error codes in hex, since more googlable, but then they are 32-bit, here it’s 16-bit, and not restricted to Windows. Downloads though already shows in hex.

The error is decoded to:
High level module ID = 4 (am I decoding this wrong, then misdirection below)
Module-dependent error code = 4
Low level module errors = 0 (i.e. not relevant seemingly)

High-level module nr

1 Like

Thank you very much for your response. Up to this point everything was working great. Apparently the problem came with some kind of update.