Is this impossible for Zygote Adjoint to handle

The example below I got out of the documentation somewhere. It appears to compute the gradient when done with the QuadratureAdjoint() I don’t get an error. When I switch to the ZygoteAdjoint() I get the error:

ERROR: MethodError: Cannot `convert` an object of type Array{Float64,1} to an object of type Float64

The code is below, you can switch the sensitivity at the top and see the full error.
I try to test the gradient of the ODEProblem function by itself, but it complains about mutating arrays. Is that the problem with Zygote?

module testTrain
using DiffEqSensitivity, OrdinaryDiffEq, ForwardDiff, Zygote

defaultSens = ZygoteAdjoint()  # Fails
#defaultSens = QuadratureAdjoint() # Works

function fiip(du,u,p,t)
  du[1] = dx = p[1]*u[1] - p[2]*u[1]*u[2]
  du[2] = dy = -p[3]*u[2] + p[4]*u[1]*u[2]
end
p = [1.5,1.0,3.0,1.0]; u0 = [1.0;1.0]
prob = ODEProblem(fiip,u0,(0.0,10.0),p)
sol = solve(prob,Tsit5())

function sum_of_solution(x)
  _prob = remake(prob,u0=x[1:2],p=x[3:end])
  sum(solve(_prob,Tsit5(),saveat=0.1,sensealg=defaultSens ))
end

function min_of_solution(x)
  _prob = remake(prob,u0=x[1:2],p=x[3:end])
  sol=solve(_prob,Tsit5(),saveat=0.1,sensealg=defaultSens )
  dist=map(f->f[2]-f[1],sol)
  minimum(dist)
end

dx = Zygote.gradient(sum_of_solution,[u0;p])
dx2 = Zygote.gradient(min_of_solution,[u0;p])

end

Do you have the full stacktrace?

ERROR: MethodError: Cannot `convert` an object of type Array{Float64,1} to an object of type Float64
Closest candidates are:
  convert(::Type{T}, ::ArrayInterface.StaticInt{N}) where {T<:Number, N} at C:\Users\userid\.julia\packages\ArrayInterface\gMtB5\src\static.jl:22   
  convert(::Type{T}, ::Ratios.SimpleRatio{S}) where {T<:AbstractFloat, S} at C:\Users\userid\.julia\packages\Ratios\uRs4y\src\Ratios.jl:13
  convert(::Type{T}, ::AbstractPlotting.Unit) where T<:Number at C:\Users\userid\.julia\packages\AbstractPlotting\ek9LT\src\units.jl:31
  ...
Stacktrace:
 [1] setindex!(::Array{Float64,1}, ::Array{Float64,1}, ::Int64) at .\array.jl:847
 [2] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\array.jl:57 [inlined]
 [3] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 [4] percolate_down! at C:\Users\userid\.julia\packages\DataStructures\ixwFs\src\heaps\arrays_as_heaps.jl:29 [inlined]
 [5] _pullback(::Zygote.Context, ::typeof(DataStructures.percolate_down!), ::Array{Float64,1}, ::Int64, ::Array{Float64,1}, ::Base.Order.ForwardOrdering, ::Int64) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [6] percolate_down! at C:\Users\userid\.julia\packages\DataStructures\ixwFs\src\heaps\arrays_as_heaps.jl:19 [inlined]
 [7] _pullback(::Zygote.Context, ::typeof(DataStructures.percolate_down!), ::Array{Float64,1}, ::Int64, ::Array{Float64,1}, ::Base.Order.ForwardOrdering) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [8] heappop! at C:\Users\userid\.julia\packages\DataStructures\ixwFs\src\heaps\arrays_as_heaps.jl:60 [inlined]
 [9] pop! at C:\Users\userid\.julia\packages\DataStructures\ixwFs\src\heaps\binary_heap.jl:107 [inlined]
 [10] _pullback(::Zygote.Context, ::typeof(pop!), ::DataStructures.BinaryHeap{Float64,Base.Order.ForwardOrdering}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [11] pop_tstop! at C:\Users\userid\.julia\packages\OrdinaryDiffEq\y19MS\src\integrators\integrator_utils.jl:402 [inlined]
 [12] _pullback(::Zygote.Context, ::typeof(OrdinaryDiffEq.pop_tstop!), ::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Tsit5,true,Array{Float64,1},Nothing,Float64,Array{Float64,1},Float64,Float64,Float64,Array{Array{Float64,1},1},SciMLBase.ODESolution{Float64,2,Array{Array{Float64,1},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Float64,1},1},1},SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem},OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.InterpolationData{SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Array{Array{Float64,1},1},Array{Float64,1},Array{Array{Array{Float64,1},1},1},OrdinaryDiffEq.Tsit5Cache{Array{Float64,1},Array{Float64,1},Array{Float64,1},OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64}}},DiffEqBase.DEStats},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},OrdinaryDiffEq.Tsit5Cache{Array{Float64,1},Array{Float64,1},Array{Float64,1},OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_NORM),typeof(LinearAlgebra.opnorm),Nothing,DiffEqBase.CallbackSet{Tuple{},Tuple{}},typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN),typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE),typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK),DataStructures.BinaryHeap{Float64,Base.Order.ForwardOrdering},DataStructures.BinaryHeap{Float64,Base.Order.ForwardOrdering},Nothing,Nothing,Int64,Tuple{},Float64,Tuple{}},Array{Float64,1},Float64,Nothing,OrdinaryDiffEq.DefaultInit}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [13] handle_tstop! at C:\Users\userid\.julia\packages\OrdinaryDiffEq\y19MS\src\integrators\integrator_utils.jl:359 [inlined]
 [14] _pullback(::Zygote.Context, ::typeof(OrdinaryDiffEq.handle_tstop!), ::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Tsit5,true,Array{Float64,1},Nothing,Float64,Array{Float64,1},Float64,Float64,Float64,Array{Array{Float64,1},1},SciMLBase.ODESolution{Float64,2,Array{Array{Float64,1},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Float64,1},1},1},SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem},OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.InterpolationData{SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Array{Array{Float64,1},1},Array{Float64,1},Array{Array{Array{Float64,1},1},1},OrdinaryDiffEq.Tsit5Cache{Array{Float64,1},Array{Float64,1},Array{Float64,1},OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64}}},DiffEqBase.DEStats},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},OrdinaryDiffEq.Tsit5Cache{Array{Float64,1},Array{Float64,1},Array{Float64,1},OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_NORM),typeof(LinearAlgebra.opnorm),Nothing,DiffEqBase.CallbackSet{Tuple{},Tuple{}},typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN),typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE),typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK),DataStructures.BinaryHeap{Float64,Base.Order.ForwardOrdering},DataStructures.BinaryHeap{Float64,Base.Order.ForwardOrdering},Nothing,Nothing,Int64,Tuple{},Float64,Tuple{}},Array{Float64,1},Float64,Nothing,OrdinaryDiffEq.DefaultInit}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [15] solve! at C:\Users\userid\.julia\packages\OrdinaryDiffEq\y19MS\src\solve.jl:459 [inlined]
 [16] _pullback(::Zygote.Context, ::typeof(CommonSolve.solve!), ::OrdinaryDiffEq.ODEIntegrator{OrdinaryDiffEq.Tsit5,true,Array{Float64,1},Nothing,Float64,Array{Float64,1},Float64,Float64,Float64,Array{Array{Float64,1},1},SciMLBase.ODESolution{Float64,2,Array{Array{Float64,1},1},Nothing,Nothing,Array{Float64,1},Array{Array{Array{Float64,1},1},1},SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem},OrdinaryDiffEq.Tsit5,OrdinaryDiffEq.InterpolationData{SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Array{Array{Float64,1},1},Array{Float64,1},Array{Array{Array{Float64,1},1},1},OrdinaryDiffEq.Tsit5Cache{Array{Float64,1},Array{Float64,1},Array{Float64,1},OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64}}},DiffEqBase.DEStats},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},OrdinaryDiffEq.Tsit5Cache{Array{Float64,1},Array{Float64,1},Array{Float64,1},OrdinaryDiffEq.Tsit5ConstantCache{Float64,Float64}},OrdinaryDiffEq.DEOptions{Float64,Float64,Float64,Float64,typeof(DiffEqBase.ODE_DEFAULT_NORM),typeof(LinearAlgebra.opnorm),Nothing,DiffEqBase.CallbackSet{Tuple{},Tuple{}},typeof(DiffEqBase.ODE_DEFAULT_ISOUTOFDOMAIN),typeof(DiffEqBase.ODE_DEFAULT_PROG_MESSAGE),typeof(DiffEqBase.ODE_DEFAULT_UNSTABLE_CHECK),DataStructures.BinaryHeap{Float64,Base.Order.ForwardOrdering},DataStructures.BinaryHeap{Float64,Base.Order.ForwardOrdering},Nothing,Nothing,Int64,Tuple{},Float64,Tuple{}},Array{Float64,1},Float64,Nothing,OrdinaryDiffEq.DefaultInit}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [17] #__solve#401 at C:\Users\userid\.julia\packages\OrdinaryDiffEq\y19MS\src\solve.jl:5 [inlined]
 [18] _pullback(::Zygote.Context, ::OrdinaryDiffEq.var"##__solve#401", ::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:saveat,),Tuple{Float64}}}, ::typeof(SciMLBase.__solve), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [19] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [20] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 [21] _pullback(::Zygote.Context, ::SciMLBase.var"#__solve##kw", ::NamedTuple{(:saveat,),Tuple{Float64}}, ::typeof(SciMLBase.__solve), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [22] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [23] adjoint(::Zygote.Context, ::typeof(Core._apply_iterate), ::typeof(iterate), ::Function, ::Tuple{NamedTuple{(:saveat,),Tuple{Float64}},typeof(SciMLBase.__solve),SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}}, ::Tuple{OrdinaryDiffEq.Tsit5}) at .\none:0
 [24] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 [25] #solve_call#56 at C:\Users\userid\.julia\packages\DiffEqBase\vaBCL\src\solve.jl:61 [inlined]
 [26] _pullback(::Zygote.Context, ::DiffEqBase.var"##solve_call#56", ::Bool, ::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:saveat,),Tuple{Float64}}}, ::typeof(DiffEqBase.solve_call), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [27] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [28] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 [29] _pullback(::Zygote.Context, ::DiffEqBase.var"#solve_call##kw", ::NamedTuple{(:saveat,),Tuple{Float64}}, ::typeof(DiffEqBase.solve_call), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [30] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [31] adjoint(::Zygote.Context, ::typeof(Core._apply_iterate), ::typeof(iterate), ::Function, ::Tuple{NamedTuple{(:saveat,),Tuple{Float64}},typeof(DiffEqBase.solve_call),SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}}, ::Tuple{OrdinaryDiffEq.Tsit5}) at .\none:0
 [32] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 [33] #solve_up#58 at C:\Users\userid\.julia\packages\DiffEqBase\vaBCL\src\solve.jl:82 [inlined]
 [34] _pullback(::Zygote.Context, ::DiffEqBase.var"##solve_up#58", ::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:saveat,),Tuple{Float64}}}, ::typeof(DiffEqBase.solve_up), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::DiffEqBase.SensitivityADPassThrough, ::Array{Float64,1}, ::Array{Float64,1}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [35] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [36] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 ... (the last 2 lines are repeated 1 more time)
 [39] #solve#57 at C:\Users\userid\.julia\packages\DiffEqBase\vaBCL\src\solve.jl:70 [inlined]
 [40] _pullback(::Zygote.Context, ::DiffEqBase.var"##solve#57", ::DiffEqBase.SensitivityADPassThrough, ::Array{Float64,1}, ::Array{Float64,1}, ::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:saveat,),Tuple{Float64}}}, ::typeof(CommonSolve.solve), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [41] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [42] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 ... (the last 3 lines are repeated 1 more time)
 [46] #167 at C:\Users\userid\.julia\packages\DiffEqSensitivity\1jYVp\src\concrete_solve.jl:280 [inlined]
 [47] _pullback(::Zygote.Context, ::DiffEqSensitivity.var"#167#168"{Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:saveat,),Tuple{Float64}}},SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem},OrdinaryDiffEq.Tsit5,Tuple{}}, ::Array{Float64,1}, ::Array{Float64,1}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [48] _pullback at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface.jl:34 [inlined]
 [49] pullback at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface.jl:40 [inlined]
 [50] #_concrete_solve_adjoint#166 at C:\Users\userid\.julia\packages\DiffEqSensitivity\1jYVp\src\concrete_solve.jl:280 [inlined]
 [51] #_solve_adjoint#81 at C:\Users\userid\.julia\packages\DiffEqBase\vaBCL\src\solve.jl:322 [inlined]
 [52] #adjoint#72 at C:\Users\userid\.julia\packages\DiffEqBase\vaBCL\src\solve.jl:286 [inlined]
 [53] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:63 [inlined]
 [54] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [55] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 [56] #solve#57 at C:\Users\userid\.julia\packages\DiffEqBase\vaBCL\src\solve.jl:70 [inlined]
 [57] _pullback(::Zygote.Context, ::DiffEqBase.var"##solve#57", ::DiffEqSensitivity.ZygoteAdjoint, ::Nothing, ::Nothing, ::Base.Iterators.Pairs{Symbol,Float64,Tuple{Symbol},NamedTuple{(:saveat,),Tuple{Float64}}}, ::typeof(CommonSolve.solve), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [58] adjoint at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\lib\lib.jl:188 [inlined]
 [59] _pullback at C:\Users\userid\.julia\packages\ZygoteRules\OjfTt\src\adjoint.jl:57 [inlined]
 [60] _pullback(::Zygote.Context, ::CommonSolve.var"#solve##kw", ::NamedTuple{(:saveat, :sensealg),Tuple{Float64,DiffEqSensitivity.ZygoteAdjoint}}, ::typeof(CommonSolve.solve), ::SciMLBase.ODEProblem{Array{Float64,1},Tuple{Float64,Float64},true,Array{Float64,1},SciMLBase.ODEFunction{true,typeof(Main.testTrain.fiip),LinearAlgebra.UniformScaling{Bool},Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,Nothing,typeof(SciMLBase.DEFAULT_OBSERVED),Nothing},Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}},SciMLBase.StandardODEProblem}, ::OrdinaryDiffEq.Tsit5) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [61] sum_of_solution at C:\Users\userid\Documents\2020\Julia\development\MyProj\examples\MyModule\testTrain2.jl:17 [inlined]
 [62] _pullback(::Zygote.Context, ::typeof(Main.testTrain.sum_of_solution), ::Array{Float64,1}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface2.jl:0
 [63] _pullback(::Function, ::Array{Float64,1}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface.jl:34
 [64] pullback(::Function, ::Array{Float64,1}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface.jl:40
 [65] gradient(::Function, ::Array{Float64,1}) at C:\Users\userid\.julia\packages\Zygote\CgsVi\src\compiler\interface.jl:58

Should this be a Zygote issue, or is it only me this doesn’t work for?

Sounds like it’s missing some kind of reduction somewhere. It’s expecting a float instead it got an array

We’ll need something more minimal to give you a straightforward answer. I’m my experience most times it’s something in the user script that needs to be changed.