# HTTP.jl leads to Error with MbedTLS libmbedx509.dll

**URL:** <https://discourse.julialang.org/t/http-jl-leads-to-error-with-mbedtls-libmbedx509-dll/18831>\
**Category:** New to Julia\
**Created:** [December 19, 2018, 2:09pm UTC](https://discourse.julialang.org/t/http-jl-leads-to-error-with-mbedtls-libmbedx509-dll/18831 "2018-12-19T14:09:18Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jort](https://avatars.discourse-cdn.com/v4/letter/j/c37758/32.png) [@jort](https://discourse.julialang.org/u/jort)\
**Post date:** [December 19, 2018, 2:09pm UTC](https://discourse.julialang.org/t/http-jl-leads-to-error-with-mbedtls-libmbedx509-dll/18831/1 "2018-12-19T14:09:19Z")

</div>

Using Julia v1.0.3 (had same error on v1.0.2) on Windows Server 2012…all packages were updated as of yesterday; specifically HTTP.jl is at v0.7.1

making an HTTP request that had worked previously, I get this error now:

ERROR: error compiling #SSLConfig#46: error compiling ca\_chain!: error compiling crt\_parse: could not load library “C:\Users\jort.julia\packages\MbedTLS\r1Ufc\deps\usr\bin\libmbedx509.dll”  
The specified procedure could not be found.

Stacktrace:  
[1] MbedTLS.SSLConfig(::Bool) at C:\Users\jort.julia\packages\MbedTLS\r1Ufc\src\MbedTLS.jl:118  
[2] global\_sslconfig(::Bool) at C:\Users\jort.julia\packages\HTTP\YjRCz\src\ConnectionPool.jl:624  
[3] #sslconnection#18(::Bool, ::MbedTLS.SSLConfig, ::Base.Iterators.Pairs{Symbol,Union{Nothing, Bool},Tuple{Symbol,Symbol},NamedTuple{(:iofunction, :basic\_authorization),Tuple{Nothing,Bool}}}, ::Function, ::Sockets.TCPSocket, ::SubString{String}) at C:\Users\jort.julia\packages\HTTP\YjRCz\src\ConnectionPool.jl:647  
[4] #sslconnection at .\none:0 [inlined]  
[5] #getconnection#17 at C:\Users\jort.julia\packages\HTTP\YjRCz\src\ConnectionPool.jl:638 [inlined]  
[6] #getconnection at .\none:0 [inlined]  
[7] #getconnection#11(::Int64, ::Int64, ::Int64, ::Int64, ::Bool, ::Base.Iterators.Pairs{Symbol,Union{Nothing, Bool},Tuple{Symbol,Symbol},NamedTuple{(:iofunction, :basic\_authorization),Tuple{Nothing,Bool}}}, ::Function,  
::Type{HTTP.ConnectionPool.Transaction{MbedTLS.SSLContext}}, ::SubString{String}, ::SubString{String}) at C:\Users\jort.julia\packages\HTTP\YjRCz\src\ConnectionPool.jl:522  
[8] (::getfield(HTTP.ConnectionPool, Symbol(“#kw##getconnection”)))(::NamedTuple{(:reuse\_limit, :iofunction, :basic\_authorization),Tuple{Int64,Nothing,Bool}}, ::typeof(HTTP.ConnectionPool.getconnection), ::Type{HTTP.ConnectionPool.Transaction{MbedTLS.SSLContext}}, ::SubString{String}, ::SubString{String}) at .\none:0  
[9] #request#1(::Nothing, ::Type, ::Int64, ::Base.Iterators.Pairs{Symbol,Union{Nothing, Bool},Tuple{Symbol,Symbol},NamedTuple{(:iofunction, :basic\_authorization),Tuple{Nothing,Bool}}}, ::Function, ::Type{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer}}, ::HTTP.URIs.URI, ::HTTP.Messages.Request, ::Array{UInt8,1}) at C:\Users\jort.julia\packages\HTTP\YjRCz\src\ConnectionRequest.jl:41  
[10] (::getfield(HTTP, Symbol(“#kw##request”)))(::NamedTuple{(:iofunction, :basic\_authorization),Tuple{Nothing,Bool}}, ::typeof(HTTP.request), ::Type{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer}}}, ::HTTP.URIs.URI, ::HTTP.Messages.Request, ::Array{UInt8,1}) at .\none:0  
[11] (::getfield(Base, Symbol(“###44#45#46”)){ExponentialBackOff,getfield(HTTP.RetryRequest, Symbol(“##2#3”)){Bool,HTTP.Messages.Request},typeof(HTTP.request)})(::Base.Iterators.Pairs{Symbol,Union{Nothing, Bool},Tuple{Symbol,Symbol},NamedTuple{(:iofunction, :basic\_authorization),Tuple{Nothing,Bool}}}, ::Function, ::Type, ::Vararg{Any,N} where N) at .\error.jl:203  
[12] #request#1(::VersionNumber, ::String, ::Nothing, ::Nothing, ::Base.Iterators.Pairs{Symbol,Bool,Tuple{Symbol},NamedTuple{(:basic\_authorization,),Tuple{Bool}}}, ::Function, ::Type{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer}}}}}, ::String, ::HTTP.URIs.URI, ::Array{Pair{SubString{String},SubString{String}},1}, ::Array{UInt8,1}) at .\none:0  
[13] #request at .\none:0 [inlined]  
[14] #request#1(::Base.Iterators.Pairs{Symbol,Bool,Tuple{Symbol},NamedTuple{(:basic\_authorization,),Tuple{Bool}}}, ::Function, ::Type{HTTP.BasicAuthRequest.BasicAuthLayer{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer}}}}}}, ::String, ::HTTP.URIs.URI, ::Array{Pair{SubString{String},SubString{String}},1}, ::Array{UInt8,1}) at C:\Users\jort.julia\packages\HTTP\YjRCz\src\BasicAuthRequest.jl:28  
[15] (::getfield(HTTP, Symbol(“#kw##request”)))(::NamedTuple{(:basic\_authorization,),Tuple{Bool}}, ::typeof(HTTP.request), ::Type{HTTP.BasicAuthRequest.BasicAuthLayer{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer}}}}}}, ::String, ::HTTP.URIs.URI, ::Array{Pair{SubString{String},SubString{String}},1}, ::Array{UInt8,1}) at .\none:0  
[16] #request#1(::Int64, ::Bool, ::Base.Iterators.Pairs{Symbol,Bool,Tuple{Symbol},NamedTuple{(:basic\_authorization,),Tuple{Bool}}}, ::Function, ::Type{HTTP.RedirectRequest.RedirectLayer{HTTP.BasicAuthRequest.BasicAuthLaer{HTTP.MessageRequest.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer}}}}}}}, ::String, ::HTTP.URIs.URI, ::Array{Pir{SubString{String},SubString{String}},1}, ::Array{UInt8,1}) at C:\Users\jort.julia\packages\HTTP\YjRCz\src\RedirectRequest.jl:24  
[17] (::getfield(HTTP, Symbol(“#kw##request”)))(::NamedTuple{(:basic\_authorization,),Tuple{Bool}}, ::typeof(HTTP.request), ::Type{HTTP.RedirectRequest.RedirectLayer{HTTP.BasicAuthRequest.BasicAuthLayer{HTTP.MessageRequet.MessageLayer{HTTP.RetryRequest.RetryLayer{HTTP.ExceptionRequest.ExceptionLayer{HTTP.ConnectionRequest.ConnectionPoolLayer{HTTP.StreamRequest.StreamLayer}}}}}}}, ::String, ::HTTP.URIs.URI, ::Array{Pair{SubString{String}SubString{String}},1}, ::Array{UInt8,1}) at .\none:0  
[18] #request#3(::Base.Iterators.Pairs{Symbol,Bool,Tuple{Symbol},NamedTuple{(:basic\_authorization,),Tuple{Bool}}}, ::Function, ::String, ::HTTP.URIs.URI, ::Array{Pair{SubString{String},SubString{String}},1}, ::Array{UIn8,1}) at C:\Users\jort.julia\packages\HTTP\YjRCz\src\HTTP.jl:302  
[19] updateCRFversions(::String, ::String, ::String, ::String, ::String, ::String, ::String, ::String) at .\none:0  
[20] top-level scope at none:0

I notice that the libmbedx509.DLL is only 143KB under MbedTLS vs. a copy under LibCURL that is 424KB. I am blocked by company firewall from downloading DLL Export Viewer, so I cannot confirm that crt\_parse is truly missing from the DLL.

Any suggestions would be greatly appreciated! This newbie is in way over his head.

Best regards,  
-Jack
