Invalidations findings (from a GMT case)

No. It’s the same reason that

julia> isconcretetype(Array)
false

julia> isconcretetype(Tuple)
false

julia> isconcretetype(Pair)
false

but

julia> isconcretetype(Array{Float32,3})
true

julia> isconcretetype(Tuple{Int,String})
true

julia> isconcretetype(Pair{Symbol,Any})
true

Until all the parameters are specified, it’s not concrete. As I said above, “Any time you have abstract parameters you will get inference failures.”

I believe it has now, right? Sorry, but it made no difference.

I ran it:

                 34: signature Tuple{typeof(convert), Type{String}, Any} triggered MethodInstance for convert(::Type{Union{Nothing, String}}, ::Any) (12 children)
                 35: signature Tuple{typeof(convert), Type{String}, Any} triggered MethodInstance for REPL.REPLHistoryProvider(::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) (12 children)
                 36: signature Tuple{typeof(convert), Type{String}, Any} triggered MethodInstance for setindex!(::Vector{String}, ::Any, ::Int64) (28 children)
                 37: signature Tuple{typeof(convert), Type{String}, Any} triggered MethodInstance for convert(::Type{Pair{String, String}}, ::Pair{String}) (39 children)
                 38: signature Tuple{typeof(convert), Union{Type{String}, Type{Union{Nothing, VersionNumber}}}, Any} triggered MethodInstance for (::Base.var"#cvt1#1"{Tuple{String, Union{Nothing, VersionNumber}}})(::Int64) (151 children)
                 39: signature Tuple{typeof(convert), Type{String}, Any} triggered MethodInstance for Base.CoreLogging.var"#handle_message#2"(::Base.Pairs{Symbol, V, Tuple{Vararg{Symbol, N}}, NamedTuple{names, T}} where {V, N, names, T<:Tuple{Vararg{Any, N}}}, ::typeof(Base.CoreLogging.handle_message), ::Base.CoreLogging.SimpleLogger, ::Base.CoreLogging.LogLevel, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any) (975 children)

Number 38 of those should be fixed by add some type annotations to improve type stability by KristofferC · Pull Request #3309 · JuliaLang/Pkg.jl · GitHub.
The rest seems unrelated to Pkg.

The last one is worse with so many children but it is unclear to me why that came up all of a sudden.

How can you tell that 38 is related to Pkg but the others seems unrelated?
They are all under the hat of

inserting convert(::Type{String}, d::StringManipulation.Decoration) @ StringManipulation C:\Users\joaqu\.julia\packages\StringManipulation\wxRU4\src\decorations.jl:193 invalidated:

Note: asking for learning purposes

Well, I couldn’t see anything directly related to Pkg in them but you are right that one should go down with ascend to see what the root cause is.