How fast does a model has to be for NMPC

I am getting this error when linearizing…

linearize
┌ Warning: Potential Rank Deficient Matrix Detected. Attempting to solve using Pivoted QR Factorization.
└ @ NonlinearSolve ~/.julia/packages/NonlinearSolve/sBl1H/src/internal/linear_solve.jl:156
ERROR: LoadError: SingularException(350)
Stacktrace:
  [1] generic_trimatdiv!(C::SubArray{…}, uploc::Char, isunitc::Char, tfun::typeof(identity), A::SubArray{…}, B::SubArray{…})
    @ LinearAlgebra ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:1141
  [2] _ldiv!
    @ ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:752 [inlined]
  [3] ldiv!
    @ ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/triangular.jl:757 [inlined]
  [4] ldiv!(A::QR{ForwardDiff.Dual{…}, Matrix{…}, Vector{…}}, B::Matrix{ForwardDiff.Dual{…}})
    @ LinearAlgebra ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/qr.jl:669
  [5] ldiv!
    @ ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/qr.jl:673 [inlined]
  [6] ldiv!(A::QRPivoted{ForwardDiff.Dual{…}, Matrix{…}, Vector{…}, Vector{…}}, b::Vector{ForwardDiff.Dual{…}})
    @ LinearAlgebra ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/qr.jl:678
  [7] ldiv!(Y::Vector{…}, A::QRPivoted{…}, B::Base.ReinterpretArray{…})
    @ LinearAlgebra ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/LinearAlgebra/src/factorization.jl:168
  [8] _ldiv!
    @ ~/.julia/packages/LinearSolve/0Q5jw/src/factorization.jl:11 [inlined]
  [9] macro expansion
    @ ~/.julia/packages/LinearSolve/0Q5jw/src/LinearSolve.jl:167 [inlined]
 [10] solve!(cache::LinearSolve.LinearCache{…}, alg::LinearSolve.QRFactorization{…}; kwargs::@Kwargs{})
    @ LinearSolve ~/.julia/packages/LinearSolve/0Q5jw/src/LinearSolve.jl:151
 [11] solve!
    @ ~/.julia/packages/LinearSolve/0Q5jw/src/LinearSolve.jl:151 [inlined]
 [12] #solve!#8
    @ ~/.julia/packages/LinearSolve/0Q5jw/src/common.jl:274 [inlined]
 [13] solve!(::LinearSolve.LinearCache{…})
    @ LinearSolve ~/.julia/packages/LinearSolve/0Q5jw/src/common.jl:273
 [14] (::NonlinearSolve.LinearSolverCache{…})(; A::Matrix{…}, b::Base.ReinterpretArray{…}, linu::Vector{…}, du::Vector{…}, p::Nothing, weight::Nothing, cachedata::Nothing, reuse_A_if_factorization::Bool, verbose::Bool, kwargs::@Kwargs{})
    @ NonlinearSolve ~/.julia/packages/NonlinearSolve/sBl1H/src/internal/linear_solve.jl:173
 [15] LinearSolverCache
    @ ~/.julia/packages/NonlinearSolve/sBl1H/src/internal/linear_solve.jl:120 [inlined]
 [16] __internal_solve!(cache::NonlinearSolve.NewtonDescentCache{…}, J::Matrix{…}, fu::Base.ReinterpretArray{…}, u::Base.ReinterpretArray{…}, idx::Val{…}; skip_solve::Bool, new_jacobian::Bool, kwargs::@Kwargs{})
    @ NonlinearSolve ~/.julia/packages/NonlinearSolve/sBl1H/src/descent/newton.jl:84
 [17] __internal_solve! (repeats 2 times)
    @ ~/.julia/packages/NonlinearSolve/sBl1H/src/descent/newton.jl:74 [inlined]
 [18] __step!(cache::NonlinearSolve.GeneralizedFirstOrderAlgorithmCache{…}; recompute_jacobian::Nothing, kwargs::@Kwargs{})
    @ NonlinearSolve ~/.julia/packages/NonlinearSolve/sBl1H/src/core/generalized_first_order.jl:245
 [19] __step!
    @ ~/.julia/packages/NonlinearSolve/sBl1H/src/core/generalized_first_order.jl:226 [inlined]
 [20] #step!#131
    @ ~/.julia/packages/NonlinearSolve/sBl1H/src/core/generic.jl:50 [inlined]
 [21] step!
    @ ~/.julia/packages/NonlinearSolve/sBl1H/src/core/generic.jl:45 [inlined]
 [22] solve!(cache::NonlinearSolve.GeneralizedFirstOrderAlgorithmCache{…})
    @ NonlinearSolve ~/.julia/packages/NonlinearSolve/sBl1H/src/core/generic.jl:13
 [23] __solve(::NonlinearProblem{…}, ::GeneralizedFirstOrderAlgorithm{…}; stats::SciMLBase.NLStats, kwargs::@Kwargs{…})
    @ NonlinearSolve ~/.julia/packages/NonlinearSolve/sBl1H/src/core/generic.jl:4
 [24] solve_call(_prob::NonlinearProblem{…}, args::GeneralizedFirstOrderAlgorithm{…}; merge_callbacks::Bool, kwargshandle::Nothing, kwargs::@Kwargs{…})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vscDj/src/solve.jl:612
 [25] solve_up(prob::NonlinearProblem{…}, sensealg::Nothing, u0::Base.ReinterpretArray{…}, p::Tuple{…}, args::GeneralizedFirstOrderAlgorithm{…}; kwargs::@Kwargs{…})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vscDj/src/solve.jl:1076
 [26] solve(prob::NonlinearProblem{…}, args::GeneralizedFirstOrderAlgorithm{…}; sensealg::Nothing, u0::Nothing, p::Nothing, wrap::Val{…}, kwargs::@Kwargs{…})
    @ DiffEqBase ~/.julia/packages/DiffEqBase/vscDj/src/solve.jl:1064
 [27] (::SimpleColloc{…})(x0::Vector{…}, u::Vector{…}, p::Vector{…}, t::Float64; abstol::Float64)
    @ SeeToDee ~/.julia/packages/SeeToDee/t9mPJ/src/SeeToDee.jl:259
 [28] (::SimpleColloc{…})(x0::Vector{…}, u::Vector{…}, p::Vector{…}, t::Float64)
    @ SeeToDee ~/.julia/packages/SeeToDee/t9mPJ/src/SeeToDee.jl:249
 [29] (::var"#f!#21"{SimpleColloc{…}, Vector{…}})(dx::Vector{ForwardDiff.Dual{…}}, x::Vector{ForwardDiff.Dual{…}}, u::Vector{Float64}, ::Vector{Float64}, ::Vector{Float64})
    @ Main ~/Code/KitePredictiveControl.jl/src/mtk_interface.jl:19
 [30] f!(xnext0::Vector{…}, model::NonLinModel{…}, x0::Vector{…}, u0::Vector{…}, d0::Vector{…}, p::Vector{…})
    @ ModelPredictiveControl ~/.julia/packages/ModelPredictiveControl/0rhFm/src/model/nonlinmodel.jl:208
 [31] (::ModelPredictiveControl.var"#myf_x0!#35"{Float64, NonLinModel{…}, Vector{…}, Vector{…}, NonLinModel{…}})(xnext0::Vector{ForwardDiff.Dual{…}}, x0::Vector{ForwardDiff.Dual{…}})
    @ ModelPredictiveControl ~/.julia/packages/ModelPredictiveControl/0rhFm/src/model/linearization.jl:124
 [32] chunk_mode_jacobian!(result::Matrix{…}, f!::ModelPredictiveControl.var"#myf_x0!#35"{…}, y::Vector{…}, x::Vector{…}, cfg::ForwardDiff.JacobianConfig{…})
    @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/jacobian.jl:183
 [33] jacobian!(result::Matrix{Float64}, f!::Function, y::Vector{Float64}, x::Vector{Float64}, cfg::ForwardDiff.JacobianConfig{ForwardDiff.Tag{…}, Float64, 12, Tuple{…}}, ::Val{true})
    @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/jacobian.jl:80
 [34] jacobian!(result::Matrix{Float64}, f!::Function, y::Vector{Float64}, x::Vector{Float64}, cfg::ForwardDiff.JacobianConfig{ForwardDiff.Tag{…}, Float64, 12, Tuple{…}})
    @ ForwardDiff ~/.julia/packages/ForwardDiff/PcZ48/src/jacobian.jl:76
 [35] linearize!(linmodel::LinModel{…}, model::NonLinModel{…}; x::Vector{…}, u::Vector{…}, d::Vector{…})
    @ ModelPredictiveControl ~/.julia/packages/ModelPredictiveControl/0rhFm/src/model/linearization.jl:129
 [36] linearize!
    @ ~/.julia/packages/ModelPredictiveControl/0rhFm/src/model/linearization.jl:110 [inlined]
 [37] linearize(model::NonLinModel{Float64, var"#f!#21"{…}, var"#h!#22"{…}, Vector{…}, ModelPredictiveControl.EmptySolver}; kwargs::@Kwargs{})
    @ ModelPredictiveControl ~/.julia/packages/ModelPredictiveControl/0rhFm/src/model/linearization.jl:87
 [38] linearize(model::NonLinModel{Float64, var"#f!#21"{…}, var"#h!#22"{…}, Vector{…}, ModelPredictiveControl.EmptySolver})
    @ ModelPredictiveControl ~/.julia/packages/ModelPredictiveControl/0rhFm/src/model/linearization.jl:75
 [39] macro expansion
    @ ./timing.jl:279 [inlined]
 [40] top-level scope
    @ ~/Code/KitePredictiveControl.jl/src/KitePredictiveControl.jl:269
 [41] include(fname::String)
    @ Base.MainInclude ./client.jl:489
 [42] top-level scope
    @ REPL[30]:1
f_disc = SimpleColloc(f_ip, Ts, nx, 0, nu; n = 5, abstol = 1.0e-4, solver=NewtonRaphson(), residual=true)
@time linmodel = ModelPredictiveControl.linearize(model)

Edit: and when trying to simulate, I get another error:

@time res = sim!(model, 10, zeros(3))
ERROR: LoadError: Failed to automatically detect ForwardDiff compatability of
the parameter object.

Any idea how to fix this?