Skip to content

Unhelpful error/fallback behavior when a solver name is not recognized via CLI #178

Description

@jorgensd

Area

Benchmark harness / CLI

Solver (if applicable)

fenics-structural

What happened?

Trying to run just a single fenics test with:

mosaic run --solvers='fenics' --problems=structural-mesh --suites=cost

however, it runs all solvers:

Benchmark plan: 1 problem(s) x 1 suite(s) = 1 (problem, suite) pair(s)
  problems: structural-mesh
  suites:   cost

──────────────────────────────────────────── problem: structural-mesh [1/1] ────────────────────────────────────────────
> /Users/dokken/Documents/src/debug_issues/mosaic/mosaic/benchmarks/cli.py(430)run()
-> breakpoint()
(Pdb) c
[WARN] no GPU detected — skipping GPU solvers: jax_fem. Pass --hardware all to override.
[WARN] unknown solver(s): fenics — skipping
[WARN] no matching solvers after filtering — running all
──────────────────────────────────────────────────────── build ─────────────────────────────────────────────────────────
  dealii_structural → running build_base.sh  (base-image wrapper)
  dealii_structural → dealii_structural_mesh:latest  (22.3s)
  fenics_structural → fenics_structural_mesh:latest  (2.0s)
[WARN] BUILD FAILED: topopt_jl — topopt_jl: tesseract build failed (exit 1):
stdout: 
stderr: tructions for sensitive data (ENV "NSS_WRAPPER_PASSWD") (line 121)
Dockerfile:106
--------------------
 104 |     RUN apt-get update -qq && apt-get install -y -q --no-install-recommends wget ca-certificates libpython3.11 
gcc g++ && rm -rf /var/lib/apt/lists/*
 105 |     RUN wget -q https://julialang-s3.julialang.org/bin/linux/x64/1.11/julia-1.11.3-linux-x86_64.tar.gz -O 
/tmp/julia.tar.gz && tar -xzf /tmp/julia.tar.gz -C /usr/local --strip-components=1 && rm /tmp/julia.tar.gz
 106 | >>> RUN mkdir -p /app/julia_env /app/julia_depot && JULIA_PYTHONCALL_LIB=$(find /usr/lib -name 
'libpython3*.so.1.0' 2>/dev/null | head -1) && echo "Using JULIA_PYTHONCALL_LIB=$JULIA_PYTHONCALL_LIB" && 
JULIA_PYTHONCALL_LIB=$JULIA_PYTHONCALL_LIB julia --project=/app/julia_env -e 'using Pkg; 
Pkg.add([Pkg.PackageSpec(name="TopOpt", version="0.11.0"), Pkg.PackageSpec(name="Nonconvex", version="2.2.0"), 
Pkg.PackageSpec(name="NonconvexMMA", version="1.1.1"), Pkg.PackageSpec(name="Zygote", version="0.6.77"), 
Pkg.PackageSpec(name="ChainRulesCore", version="1.26.1"), Pkg.PackageSpec(name="PythonCall", version="0.9.31")]); 
Pkg.precompile()'
 107 |     RUN chmod -R 777 /app
 108 |     
--------------------
ERROR: failed to build: failed to solve: process "/bin/sh -c mkdir -p /app/julia_env /app/julia_depot && 
JULIA_PYTHONCALL_LIB=$(find /usr/lib -name 'libpython3*.so.1.0' 2>/dev/null | head -1) && echo \"Using 
JULIA_PYTHONCALL_LIB=$JULIA_PYTHONCALL_LIB\" && JULIA_PYTHONCALL_LIB=$JULIA_PYTHONCALL_LIB julia 
--project=/app/julia_env -e 'using Pkg; Pkg.add([Pkg.PackageSpec(name=\"TopOpt\", version=\"0.11.0\"), 
Pkg.PackageSpec(name=\"Nonconvex\", version=\"2.2.0\"), Pkg.PackageSpec(name=\"NonconvexMMA\", version=\"1.1.1\"), 
Pkg.PackageSpec(name=\"Zygote\", version=\"0.6.77\"), Pkg.PackageSpec(name=\"ChainRulesCore\", version=\"1.26.1\"), 
Pkg.PackageSpec(name=\"PythonCall\", version=\"0.9.31\")]); Pkg.precompile()'" did not complete successfully: exit code:
133
 [-] Error building Tesseract.
  Aborting

  firedrake_structural → firedrake_structural_mesh:latest  (27.2s)
  building solver images... 0:00:52

⚠ 1 solver(s) failed to build and will be skipped: topopt_jl

──────────────────────────────────────────   suite: cost [1/1] (overall 1/1) ───────────────────────────────────────────
  3 experiment(s) queued, 4 solver(s) registered
──────────────────────────────────────────── experiment: spatial_cost [1/3] ────────────────────────────────────────────
[WARN] skipping 1 solver(s) with no built image: topopt_jl
  dealii_structural  nx sweep (10 sizes, 3 trials each)

Expected behavior

Should just run FEniCS.

Environment

  • OS: Mac 26.6.2
  • Python: 3.13
  • Using conda-forge to install mosaic deps
  • Mosaic tag: v0.1+paper-repro

Activity

  1. jorgensd commented on Sep 14, 2026

    @jorgensd
    ContributorAuthor

    With some AI prompting, it seems it should be sent in as:

     mosaic run --problems=structural-mesh --suites=cost --solvers=fenics_structural
  2. dionhaefner commented on Sep 14, 2026

    @dionhaefner
    Contributor

    Let's keep it open, at the very least we should print a list of all available solvers, but ideally this should be a loud failure instead of silently running all solvers.

  3. changed the title [-]Solver request ignored[/-] [+]Unhelpful error/fallback behavior when a solver name is not recognized via CLI[/+] on Sep 14, 2026
  4. added theissue type on Oct 1, 2026
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

    bugSomething isn't workinggood first issueGood for newcomers

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions