<p dir="auto">I found what looks like a bug/oversight.</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="jjulia&gt; d = Dict(i=&gt;rand() for i in 1:3)
Dict{Int64, Float64} with 3 entries:
  2 =&gt; 0.192129
  3 =&gt; 0.340718
  1 =&gt; 0.154868

julia&gt; v = [d,d]
2-element Vector{Dict{Int64, Float64}}:
 Dict(2 =&gt; 0.19212863767897548, 3 =&gt; 0.34071840174647483, 1 =&gt; 0.15486801172387077)
 Dict(2 =&gt; 0.19212863767897548, 3 =&gt; 0.34071840174647483, 1 =&gt; 0.15486801172387077)

julia&gt; union(keys.(v)...)
Set{Int64} with 3 elements:
  2
  3
  1

julia&gt; union(keys.(v[1:1])...)
ERROR: MethodError: no method matching copy(::Base.KeySet{Int64, Dict{Int64, Float64}})
Closest candidates are:
  copy(::Union{SubArray{T, N, var&quot;#s5&quot;, I, L} where {var&quot;#s5&quot;&lt;:(PooledArrays.PooledArray{T, R, N, RA} where {N, RA}), I, L}, PooledArrays.PooledArray{T, R, N, RA} where RA} where {T, N, R}) at /home/joe/.julia/packages/PooledArrays/CV8kA/src/PooledArrays.jl:212
  copy(::SubArray{var&quot;#s832&quot;, var&quot;#s831&quot;, var&quot;#s830&quot;, I, L} where {var&quot;#s832&quot;, var&quot;#s831&quot;, var&quot;#s830&quot;&lt;:Union{SparseArrays.AbstractSparseMatrixCSC, SparseArrays.SparseVector}, I, L}) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/SparseArrays/src/sparsevector.jl:720
  copy(::SubArray) at subarray.jl:70
  ...
Stacktrace:
 [1] union(s::Base.KeySet{Int64, Dict{Int64, Float64}})
   @ Base ./abstractset.jl:49
 [2] top-level scope
   @ REPL[30]:1"><pre class="notranslate">jjulia<span class="pl-k">&gt;</span> d <span class="pl-k">=</span> <span class="pl-c1">Dict</span>(i<span class="pl-k">=&gt;</span><span class="pl-c1">rand</span>() <span class="pl-k">for</span> i <span class="pl-k">in</span> <span class="pl-c1">1</span><span class="pl-k">:</span><span class="pl-c1">3</span>)
Dict{Int64, Float64} with <span class="pl-c1">3</span> entries<span class="pl-k">:</span>
  <span class="pl-c1">2</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.192129</span>
  <span class="pl-c1">3</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.340718</span>
  <span class="pl-c1">1</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.154868</span>

julia<span class="pl-k">&gt;</span> v <span class="pl-k">=</span> [d,d]
<span class="pl-c1">2</span><span class="pl-k">-</span>element Vector{Dict{Int64, Float64}}<span class="pl-k">:</span>
 <span class="pl-c1">Dict</span>(<span class="pl-c1">2</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.19212863767897548</span>, <span class="pl-c1">3</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.34071840174647483</span>, <span class="pl-c1">1</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.15486801172387077</span>)
 <span class="pl-c1">Dict</span>(<span class="pl-c1">2</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.19212863767897548</span>, <span class="pl-c1">3</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.34071840174647483</span>, <span class="pl-c1">1</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">0.15486801172387077</span>)

julia<span class="pl-k">&gt;</span> <span class="pl-c1">union</span>(<span class="pl-c1">keys</span>.(v)<span class="pl-k">...</span>)
Set{Int64} with <span class="pl-c1">3</span> elements<span class="pl-k">:</span>
  <span class="pl-c1">2</span>
  <span class="pl-c1">3</span>
  <span class="pl-c1">1</span>

julia<span class="pl-k">&gt;</span> <span class="pl-c1">union</span>(<span class="pl-c1">keys</span>.(v[<span class="pl-c1">1</span><span class="pl-k">:</span><span class="pl-c1">1</span>])<span class="pl-k">...</span>)
ERROR<span class="pl-k">:</span> MethodError<span class="pl-k">:</span> no method matching <span class="pl-c1">copy</span>(<span class="pl-k">::</span><span class="pl-c1">Base.KeySet{Int64, Dict{Int64, Float64}}</span>)
Closest candidates are<span class="pl-k">:</span>
  <span class="pl-c1">copy</span>(<span class="pl-k">::</span><span class="pl-c1">Union{SubArray{T, N, var"#s5", I, L} where {var"#s5"&lt;:(PooledArrays.PooledArray{T, R, N, RA} where {N, RA}), I, L}, PooledArrays.PooledArray{T, R, N, RA} where RA}</span> <span class="pl-k">where</span> {T, N, R}) at <span class="pl-k">/</span>home<span class="pl-k">/</span>joe<span class="pl-k">/</span><span class="pl-k">.</span>julia<span class="pl-k">/</span>packages<span class="pl-k">/</span>PooledArrays<span class="pl-k">/</span>CV8kA<span class="pl-k">/</span>src<span class="pl-k">/</span>PooledArrays<span class="pl-k">.</span>jl<span class="pl-k">:</span><span class="pl-c1">212</span>
  <span class="pl-c1">copy</span>(<span class="pl-k">::</span><span class="pl-c1">SubArray{var"#s832", var"#s831", var"#s830", I, L}</span> <span class="pl-k">where</span> {<span class="pl-c1">var"#s832"</span>, <span class="pl-c1">var"#s831"</span>, <span class="pl-c1">var"#s830"</span><span class="pl-k">&lt;:</span><span class="pl-c1">Union{SparseArrays.AbstractSparseMatrixCSC, SparseArrays.SparseVector}</span>, I, L}) at <span class="pl-k">/</span>buildworker<span class="pl-k">/</span>worker<span class="pl-k">/</span>package_linux64<span class="pl-k">/</span>build<span class="pl-k">/</span>usr<span class="pl-k">/</span>share<span class="pl-k">/</span>julia<span class="pl-k">/</span>stdlib<span class="pl-k">/</span>v1.<span class="pl-c1">6</span><span class="pl-k">/</span>SparseArrays<span class="pl-k">/</span>src<span class="pl-k">/</span>sparsevector<span class="pl-k">.</span>jl<span class="pl-k">:</span><span class="pl-c1">720</span>
  <span class="pl-c1">copy</span>(<span class="pl-k">::</span><span class="pl-c1">SubArray</span>) at subarray<span class="pl-k">.</span>jl<span class="pl-k">:</span><span class="pl-c1">70</span>
  <span class="pl-k">...</span>
Stacktrace<span class="pl-k">:</span>
 [<span class="pl-c1">1</span>] <span class="pl-c1">union</span>(s<span class="pl-k">::</span><span class="pl-c1">Base.KeySet{Int64, Dict{Int64, Float64}}</span>)
   @ Base <span class="pl-k">./</span>abstractset<span class="pl-k">.</span>jl<span class="pl-k">:</span><span class="pl-c1">49</span>
 [<span class="pl-c1">2</span>] top<span class="pl-k">-</span>level scope
   @ REPL[<span class="pl-c1">30</span>]<span class="pl-k">:</span><span class="pl-c1">1</span></pre></div>
<p dir="auto">When I use <code class="notranslate">union(Set.(keys.(v[1:1))...)</code> it works as expected.</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="julia&gt; d = Dict(1=&gt;2)
Dict{Int64,Int64} with 1 entry:
  1 =&gt; 2

julia&gt; union(keys(d))
ERROR: MethodError: no method matching copy(::Base.KeySet{Int64,Dict{Int64,Int64}})

julia&gt; union(keys(d), keys(d))
Set([1])"><pre class="notranslate">julia<span class="pl-k">&gt;</span> d <span class="pl-k">=</span> <span class="pl-c1">Dict</span>(<span class="pl-c1">1</span><span class="pl-k">=&gt;</span><span class="pl-c1">2</span>)
Dict{Int64,Int64} with <span class="pl-c1">1</span> entry<span class="pl-k">:</span>
  <span class="pl-c1">1</span> <span class="pl-k">=&gt;</span> <span class="pl-c1">2</span>

julia<span class="pl-k">&gt;</span> <span class="pl-c1">union</span>(<span class="pl-c1">keys</span>(d))
ERROR<span class="pl-k">:</span> MethodError<span class="pl-k">:</span> no method matching <span class="pl-c1">copy</span>(<span class="pl-k">::</span><span class="pl-c1">Base.KeySet{Int64,Dict{Int64,Int64}}</span>)

julia<span class="pl-k">&gt;</span> <span class="pl-c1">union</span>(<span class="pl-c1">keys</span>(d), <span class="pl-c1">keys</span>(d))
<span class="pl-c1">Set</span>([<span class="pl-c1">1</span>])</pre></div>