automatic conversion for fields of a parametric struct

Ignore the last part of the error as this is not from a call to a constructor, you are calling convert() directly.

As you have just defined this custom type yourself there is no existing method for convert(Type{AwesomeStruct{Union{Void,Int64}}, AwesomeStruct{Void})

But you can easily write a general method for any AwesomeStruct T:

julia> import Base: convert

julia> convert(t::Type{AwesomeStruct{T}}, x::AwesomeStruct) where T =  t(x.awesome_field)
convert (generic function with 1 method)

julia> convert(AwesomeStruct{Union{Void,Int64}}, x)
AwesomeStruct{Union{Int64, Void}}(nothing)

But why do you want to convert it anyway? Why do you need a union type?