# MbedTLS unsatisfiable requirements

**URL:** <https://discourse.julialang.org/t/mbedtls-unsatisfiable-requirements/35495>\
**Category:** General Usage\
**Created:** [March 4, 2020, 1:25am UTC](https://discourse.julialang.org/t/mbedtls-unsatisfiable-requirements/35495 "2020-03-04T01:25:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![joshua\_jones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joshua_jones/32/7554_2.png) [@joshua\_jones](https://discourse.julialang.org/u/joshua_jones)\
**Post date:** [March 4, 2020, 1:25am UTC](https://discourse.julialang.org/t/mbedtls-unsatisfiable-requirements/35495/1 "2020-03-04T01:25:10Z")

</div>

Using Pkg.update() on [SeisIO.jl](https://github.com/jpjones76/SeisIO.jl) updates MbedTLS to a version that breaks Travis-CI tests in all Julia versions, and Appveyor tests in some Julia versions (e.g. compare [this Appveyor build](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743) to [this Travis-CI build](https://travis-ci.org/jpjones76/SeisIO.jl/builds/658001528)). The only solution I’ve found is to manually set the MbedTLS version in Manifest.toml to “0.6.8”, which seems very fragile.

I don’t understand the cause but it’s been happening for several months. Checking the registry, my only dependency with MbedTLS in its Compat.toml is HTTP, but MbedTLS = [“0.6.8-0.7”, “1”] for HTTP 0.8.12 shouldn’t cause problems.

Is this an issue with Travis-CI and Appveyor, or have I misconfigured something?

Error output below.

Travis-CI:

```julia
ERROR: Unsatisfiable requirements detected for package MbedTLS [739be429]:
375 MbedTLS [739be429] log:
376 ├─possible versions are: [0.5.13-0.5.14, 0.6.0-0.6.8, 0.7.0, 1.0.0] or uninstalled
377 ├─restricted to versions 1.0.0 by an explicit requirement, leaving only versions 1.0.0
378 └─restricted by julia compatibility requirements to versions: [0.5.13-0.5.14, 0.6.0-0.6.8] or uninstalled — no versions left
379

```

Appveyor:

```julia
ERROR: Unsatisfiable requirements detected for package MbedTLS [739be429]:
[70](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L70) MbedTLS [739be429] log:
[71](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L71) ├─possible versions are: [0.5.13-0.5.14, 0.6.0-0.6.8, 0.7.0, 1.0.0] or uninstalled
[72](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L72) ├─restricted to versions 1.0.0 by an explicit requirement, leaving only versions 1.0.0
[73](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L73) └─restricted by julia compatibility requirements to versions: [0.5.13-0.5.14, 0.6.0-0.6.8] or uninstalled — no versions left
[74](https://ci.appveyor.com/project/jpjones76/seisio-jl/builds/31223743/job/2gh731kklj35xl8n#L74)

```

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [March 4, 2020, 2:27am UTC](https://discourse.julialang.org/t/mbedtls-unsatisfiable-requirements/35495/2 "2020-03-04T02:27:18Z")

</div>

What happens if you remove your `Manifest.toml` file from source control?

---

<div class="post-metadata">

**Author:** ![joshua\_jones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joshua_jones/32/7554_2.png) [@joshua\_jones](https://discourse.julialang.org/u/joshua_jones)\
**Post date:** [March 4, 2020, 4:40am UTC](https://discourse.julialang.org/t/mbedtls-unsatisfiable-requirements/35495/3 "2020-03-04T04:40:09Z")

</div>

That seems to fix it. What causes this problem?

Is it really OK to leave Manifest.toml untracked? I know [Does Manifest.toml belong in the repository? - #2 by kristoffer.carlsson](https://discourse.julialang.org/t/does-manifest-toml-belong-in-the-repository/12029/2) is a little dated but that made it sound like the best practice was including it. Am I misreading the intent? My interpretation of [10. Project.toml and Manifest.toml · Pkg.jl](https://julialang.github.io/Pkg.jl/dev/toml-files/) was similar.

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [March 4, 2020, 5:00am UTC](https://discourse.julialang.org/t/mbedtls-unsatisfiable-requirements/35495/4 "2020-03-04T05:00:48Z")

</div>

Opinions vary.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 4, 2020, 6:36am UTC](https://discourse.julialang.org/t/mbedtls-unsatisfiable-requirements/35495/5 "2020-03-04T06:36:32Z")

</div>

I include `Manifest.toml` for _projects_ (eg code for a research paper) to get a reproducible environment, but not for _packages_, where it usually leads to errors like yours.

For packages, rely on compat bounds, especially as they are needed for the registry anyway.
