# Error setting mixed type Cmd environment

**URL:** <https://discourse.julialang.org/t/error-setting-mixed-type-cmd-environment/123588>\
**Category:** General Usage\
**Tags:** command-line-options\
**Created:** [December 8, 2024, 10:39am UTC](https://discourse.julialang.org/t/error-setting-mixed-type-cmd-environment/123588 "2024-12-08T10:39:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![KSepetanc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ksepetanc/32/10841_2.png) [@KSepetanc](https://discourse.julialang.org/u/KSepetanc)\
**Post date:** [December 8, 2024, 10:39am UTC](https://discourse.julialang.org/t/error-setting-mixed-type-cmd-environment/123588/1 "2024-12-08T10:39:52Z")

</div>

The following command results in error because it has mixed strings and integers.

> Cmd(`ampl PF.run`,env=(“param1”=\>1,“param2”=\>“abc”))

```julia
ERROR: MethodError: no method matching byteenv(::Tuple{Pair{String, Int64}, Pair{String, String}})

Closest candidates are:
  byteenv(::Nothing)
   @ Base cmd.jl:249
  byteenv(::Union{AbstractArray{Pair{T, V}, 1}, Tuple{Vararg{Pair{T, V}}}}) where {T<:AbstractString, V}
   @ Base cmd.jl:250
  byteenv(::AbstractDict)
   @ Base cmd.jl:247
  ...

Stacktrace:
 [1] Cmd(cmd::Cmd; ignorestatus::Bool, env::Tuple{…}, dir::String, cpus::Nothing, detach::Bool, windows_verbatim::Bool, windows_hide::Bool)
   @ Base .\cmd.jl:30
 [2] top-level scope
   @ REPL[20]:1
Some type information was truncated. Use `show(err)` to see complete types.

```

If the parameters are exclusively integers or exclusively strings then it appears to work ok. How to avoid this issue? I am running Julia 1.10.7.

---

<div class="post-metadata">

**Author:** ![eldee](https://avatars.discourse-cdn.com/v4/letter/e/b5a626/32.png) [@eldee](https://discourse.julialang.org/u/eldee)\
**Post date:** [December 8, 2024, 12:36pm UTC](https://discourse.julialang.org/t/error-setting-mixed-type-cmd-environment/123588/2 "2024-12-08T12:36:21Z")

</div>

You can use a `Dict`ionary instead of a `Tuple{Vararg{Pair}}`:

```julia-repl
julia> run(Cmd(`sh -c "echo \$param1 \$param2"`, env=("param1"=>1, "param2"=>"abc")));
ERROR: MethodError: no method matching byteenv(::Tuple{Pair{String, Int64}, Pair{String, String}})
...

julia> run(Cmd(`sh -c "echo \$param1 \$param2"`, env=Dict("param1"=>1, "param2"=>"abc")));
1 abc

```

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [December 8, 2024, 2:22pm UTC](https://discourse.julialang.org/t/error-setting-mixed-type-cmd-environment/123588/3 "2024-12-08T14:22:07Z")

</div>

Can you submit an issue? This should be made to work since all values are just converted to strings.

---

<div class="post-metadata">

**Author:** ![KSepetanc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ksepetanc/32/10841_2.png) [@KSepetanc](https://discourse.julialang.org/u/KSepetanc)\
**Post date:** [December 8, 2024, 3:35pm UTC](https://discourse.julialang.org/t/error-setting-mixed-type-cmd-environment/123588/4 "2024-12-08T15:35:41Z")

</div>

I created an [issue](https://github.com/JuliaLang/julia/issues/56780) as suggested.
