Skip to content

Re-enable Nonconvex in OPF benchmarks #736

Description

@ChrisRackauckas

Identified in #735, symbolic = true caused the server to halt:

_bk;t=1694823702792Internal error: stack overflow in type inference of (::RuntimeGeneratedFunctions.RuntimeGeneratedFunction{(:ˍ₋arg1,), Symbolics.var"#_RGF_ModTag", Symbolics.var"#_RGF_ModTag", (0xaa552898, 0xaf8490d0, 0x20badbf9, 0xf8e30c84, 0x637debea), Expr})(Array{Symbolics.Num, 1}).

_bk;t=1694828646696This might be caused by recursion over very long tuples or argument lists.

_bk;t=1694828646696Internal error: stack overflow in type inference of (::RuntimeGeneratedFunctions.RuntimeGeneratedFunction{(:ˍ₋arg1,), Symbolics.var"#_RGF_ModTag", Symbolics.var"#_RGF_ModTag", (0xaa552898, 0xaf8490d0, 0x20badbf9, 0xf8e30c84, 0x637debea), Expr})(Array{Float64, 1}).

_bk;t=1694828656064This might be caused by recursion over very long tuples or argument lists.

_bk;t=1694828656064Internal error: stack overflow in type inference of (::RuntimeGeneratedFunctions.RuntimeGeneratedFunction{(:ˍ₋arg1,), Symbolics.var"#_RGF_ModTag", Symbolics.var"#_RGF_ModTag", (0xccb40d2a, 0x291b25aa, 0xb313de73, 0xc2fe367a, 0x85a9f745), Expr})(Array{Symbolics.Num, 1}).

_bk;t=1694828679462This might be caused by recursion over very long tuples or argument lists.

_bk;t=1694828679462Internal error: stack overflow in type inference of (::RuntimeGeneratedFunctions.RuntimeGeneratedFunction{(:ˍ₋arg1,), Symbolics.var"#_RGF_ModTag", Symbolics.var"#_RGF_ModTag", (0xccb40d2a, 0x291b25aa, 0xb313de73, 0xc2fe367a, 0x85a9f745), Expr})(Array{Float64, 1}).

_bk;t=1694830468077This might be caused by recursion over very long tuples or argument lists.

_bk;t=1694830468077

while false caused

Error: MethodError: no method matching Float64(::ForwardDiff.Dual{ForwardDiff.Tag{NonconvexUtils.var"#101#108"{NonconvexUtils.var"#100#107"{NonconvexUtils.var"#97#104"{NonconvexCore.VectorOfFunctions{Vector{NonconvexCore.IneqConstraint{var"300", Float64, Int64, Set{Symbol}} where var"300"<:Function}}}}}, Float64}, Float64, 1})

Closest candidates are:
  (::Type{T})(::Real, !Matched::RoundingMode) where T<:AbstractFloat
   @ Base rounding.jl:207
  (::Type{T})(::T) where T<:Number
   @ Core boot.jl:792
  (::Type{T})(!Matched::AbstractChar) where T<:Union{AbstractChar, Number}
   @ Base char.jl:50
  ...

Thus there's some bug in Nonconvex that needs to be fixed before it can be re-enabled, otherwise it stops all benchmarks above a certain size.

Activity

  1. singhharsh1708 commented on Mar 14, 2026

    @singhharsh1708
    Member

    @ChrisRackauckas is this still open to work ?

  2. ChrisRackauckas commented on Mar 14, 2026

    @ChrisRackauckas
    MemberAuthor

    Yes. Though this needs a bit more than a re-enable, it needs a full bump of the power flow library to use the latest versions, while it's on a special branch right now that needs to be fully eliminated.

  3. ChrisRackauckas-Claude commented on Mar 26, 2026

    @ChrisRackauckas-Claude
    Member

    Update: Tested as part of #1531. Nonconvex v2.2.0 is still incompatible with Symbolics v7 — installing both together forces a downgrade to Symbolics v6. The Nonconvex code remains commented out in the OPF benchmark.

    The separate issue of PowerModels being on a fork branch is now fully resolved — master uses registered PowerModels v0.21.5 with no special branch needed. All other OPF solvers (Optimization.jl, JuMP, NLPModels, MTK) work correctly with the latest packages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions