Skip to content

[CI Broken] Dependency resolution failures and MethodError in MethodOfLines tests #39

@ChrisRackauckas-Claude

Description

@ChrisRackauckas-Claude

CI Status: BROKEN

The master branch is currently failing CI checks. This was detected during an automated CI health check.

Test PR: #38
Failed CI Run: https://github.com/SciML/PDESystemLibrary.jl/actions/runs/20799079910


Summary

CI is broken due to two distinct issues:

  1. Dependency resolution failure in the alldeps test (Julia 1.10)
  2. MethodError in all MethodOfLines tests across all Julia versions (1, lts, pre)

Issue 1: Dependency Resolution Failure (alldeps test)

Failed Job: test (alldeps, 1.10)
Duration: 51 seconds
Log: https://github.com/SciML/PDESystemLibrary.jl/actions/runs/20799079912/job/59739857080

Error Details

ERROR: LoadError: Unsatisfiable requirements detected for package MethodOfLines [94925ecb]:
 MethodOfLines [94925ecb] log:
 ├─possible versions are: 0.1.0-0.11.9 or uninstalled
 ├─restricted to versions * by project [427c309f], leaving only versions: 0.1.0-0.11.9
 ├─restricted by compatibility requirements with Symbolics [0c5d862f] to versions: [0.8.3-0.8.4, 0.9.0-0.11.0] or uninstalled
 │ └─Symbolics [0c5d862f] log:
 │   ├─possible versions are: 0.1.0-7.5.0 or uninstalled
 │   └─restricted to versions 5.25.2 by an explicit requirement, leaving only versions: 5.25.2
 └─restricted by compatibility requirements with ModelingToolkit [961ee093] to versions: uninstalled — no versions left
   └─ModelingToolkit [961ee093] log:
     ├─possible versions are: 0.0.1-11.5.1 or uninstalled
     ├─restricted to versions 9-11 by project [427c309f], leaving only versions: 9.0.0-11.5.1
     └─restricted to versions 9.0.0 by an explicit requirement, leaving only versions: 9.0.0

Root Cause

The alldeps downgrade test is attempting to find the minimum compatible versions but encounters an unsatisfiable dependency constraint:

  • The downgrade resolver selected Symbolics 5.25.2 and ModelingToolkit 9.0.0
  • These versions are incompatible with any version of MethodOfLines
  • MethodOfLines compatible with Symbolics 5.25.2 requires a newer ModelingToolkit (>9.0.0)
  • This indicates the compat bounds in Project.toml may be too loose or there's a gap in the dependency graph

Issue 2: MethodError in MethodOfLines Tests

Failed Jobs:

Duration: ~28 minutes each

Error Details

All MOL examples are failing with the same error pattern:

Example: heat_1d1: Error During Test at /home/runner/work/PDESystemLibrary.jl/PDESystemLibrary.jl/test/mol_test.jl:10
  Got exception outside of a @test
  MethodError: Cannot `convert` an object of type 
    Pair{Symbolics.Num, Float64} to an object of type 
    SymbolicUtils.Symbolic
  The function `convert` exists, but no method is defined for this combination of argument types.
  
  Stacktrace:
    [1] setindex!(h::Dict{SymbolicUtils.Symbolic, Nothing}, v0::Nothing, key0::Pair{Symbolics.Num, Float64})
      @ Base ./dict.jl:346
    [2] push!(s::Set{SymbolicUtils.Symbolic}, x::Pair{Symbolics.Num, Float64})
      @ Base ./set.jl:137
    [3] ModelingToolkit.TearingState(sys::ModelingToolkit.System; quick_cancel::Bool, check::Bool, sort_eqs::Bool)
      @ ModelingToolkit ~/.julia/packages/ModelingToolkit/Ay2JZ/src/systems/systemstructure.jl:377

Root Cause

This appears to be a type incompatibility introduced by recent changes in ModelingToolkit or Symbolics:

  • The code is trying to insert a Pair{Symbolics.Num, Float64} into a Set{SymbolicUtils.Symbolic}
  • The conversion from Pair{Symbolics.Num, Float64} to SymbolicUtils.Symbolic is not defined
  • This is happening during the TearingState construction in ModelingToolkit's structural transformation

This suggests either:

  1. An upstream breaking change in ModelingToolkit or Symbolics that PDESystemLibrary hasn't adapted to
  2. The systems in this library are passing parameters in a format that's no longer supported

Affected Tests

Passing:

  • ✅ test (NeuralPDE, 1)
  • ✅ test (NeuralPDE, lts)
  • ✅ test (NeuralPDE, pre)
  • ✅ Spell Check with Typos
  • ✅ build

Failing:

  • ❌ test (MOL, 1)
  • ❌ test (MOL, lts)
  • ❌ test (MOL, pre)
  • ❌ test (alldeps, 1.10)

Suggested Fix Approach

For Issue 1 (alldeps):

  1. Review the compat bounds in Project.toml for ModelingToolkit, Symbolics, and MethodOfLines
  2. Tighten the lower bounds if necessary to ensure a valid dependency resolution exists
  3. Consider whether the minimum versions are actually being tested in practice

For Issue 2 (MethodError):

  1. Check recent releases of ModelingToolkit and Symbolics for breaking changes
  2. Review how PDESystem parameters are being passed (look for D => 1.0 style pairs)
  3. May need to update the parameter specification format in the library systems
  4. Coordinate with ModelingToolkit team if this is an upstream issue

Additional Information

  • Detection Date: 2026-01-07
  • All failures are reproducible across multiple Julia versions
  • NeuralPDE tests pass, suggesting the issue is specific to MethodOfLines integration

cc @ChrisRackauckas

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions