# 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

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

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
[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
[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
[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
[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
[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
[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
[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
... (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
... (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]
[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