quarto-dev / quarto-dev/quarto-cli

Bug when building a PDF document containing Mermaid graph using Gitlab CI

Open
#14,166 7 comments 2 reactions 1 assignee View on GitHub

@cderv is already working on this.

Since Mar 6, 2026.

bug chromium diagrams triaged-to
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

I have:
  • searched the issue tracker for similar issues
  • installed the latest version of Quarto CLI
  • formatted my issue following the Bug Reports guide
Bug description

Hi everyone.

When I try to build a PDF document from Quarto files containing Mermaid graphs, I encounter an issue.

The error messages are as follows:

[✓] Checking Julia installation...
build-pages $ export QUARTO_PRINT_STACK=true
build-pages $ quarto render doc --output-dir=public
[1/3] index.qmd
[2/3] developer.qmd
[3/3] developer/manager_initialization.qmd
build-pages > ERROR: AssertionError: 
build-pages > 
build-pages > Stack trace:
build-pages >     at assert (file:///opt/quarto/bin/quarto.js:470:11)
build-pages >     at assert7 (file:///opt/quarto/bin/quarto.js:68259:3)
build-pages >     at criClient (file:///opt/quarto/bin/quarto.js:68348:7)
build-pages >     at eventLoopTick (ext:core/01_core.js:218:9)
build-pages >     at async file:///opt/quarto/bin/quarto.js:68296:16
build-pages >     at async Semaphore.runExclusive (file:///opt/quarto/bin/quarto.js:67644:27)
build-pages >     at async Object.createPngsFromHtml (file:///opt/quarto/bin/quarto.js:68620:36)
build-pages >     at async Object.cell (file:///opt/quarto/bin/quarto.js:132394:11)
build-pages >     at async Promise.all (index 0)
build-pages >     at async Object.document (file:///opt/quarto/bin/quarto.js:69029:25)
build-pages >     at async handleLanguageCells (file:///opt/quarto/bin/quarto.js:68829:34)
build-pages >     at async file:///opt/quarto/bin/quarto.js:136718:41
build-pages >     at async withTimingAsync (file:///opt/quarto/bin/quarto.js:15978:21)
build-pages >     at async renderFileInternal (file:///opt/quarto/bin/quarto.js:136717:9)
build-pages >     at async renderFiles (file:///opt/quarto/bin/quarto.js:136483:9)
build-pages >     at async renderProject (file:///opt/quarto/bin/quarto.js:137052:23)
build-pages >     at async _Command.actionHandler (file:///opt/quarto/bin/quarto.js:142382:24)
build-pages >     at async _Command.execute (file:///opt/quarto/bin/quarto.js:102005:7)
build-pages >     at async _Command.parseCommand (file:///opt/quarto/bin/quarto.js:101882:14)
build-pages >     at async quarto4 (file:///opt/quarto/bin/quarto.js:187491:5)
build-pages >     at async file:///opt/quarto/bin/quarto.js:187519:5
build-pages >     at async file:///opt/quarto/bin/quarto.js:187374:14
build-pages >     at async mainRunner (file:///opt/quarto/bin/quarto.js:187376:5)
build-pages >     at async file:///opt/quarto/bin/quarto.js:187512:3
build-pages > Error occurred during cleanup: TypeError: Child process has already terminated
build-pages finished in 19 s  FAIL 1 

 FAIL  build-pages
  >     at async mainRunner (file:///opt/quarto/bin/quarto.js:187376:5)
  >     at async file:///opt/quarto/bin/quarto.js:187512:3
  > Error occurred during cleanup: TypeError: Child process has already terminated
pipeline finished in 19 s

If I remove any reference to Mermaid it works. And if I build only the HTML without the PDF it works too. This issue was tested on the following simple project: https://forge.ird.fr/marbec/ichthyop/test-gitlab-ichthyop

Log messages are here: https://forge.ird.fr/marbec/ichthyop/test-gitlab-ichthyop/-/jobs/246132

Thanks for your help

Nicolas

Steps to reproduce

You can clone the repository:

git clone https://forge.ird.fr/marbec/ichthyop/test-gitlab-ichthyop.git

And on Linux, you can simply download the gitlab-local-ci tool and run, within the proper folder:

gitlab-ci-local
Actual behavior

No response

Expected behavior

No response

Your environment

No response

Quarto check output

The quarto check command returns:

build-pages $ quarto check
build-pages > Quarto 1.9.29
[✓] Checking environment information...
build-pages >       Quarto cache location: /root/.cache/quarto
[✓] Checking versions of quarto binary dependencies...
build-pages >       Pandoc version 3.8.3: OK
build-pages >       Dart Sass version 1.87.0: OK
build-pages >       Deno version 2.4.5: OK
build-pages >       Typst version 0.14.2: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
build-pages >       Version: 1.9.29
build-pages >       Path: /opt/quarto/bin
build-pages > 
[✓] Checking tools....................OK
build-pages >       TinyTeX: (external install)
build-pages >       Chrome Headless Shell: 146.0.7680.66
build-pages >       Chromium: (not installed)
build-pages >       VeraPDF: (not installed)
build-pages > 
[✓] Checking LaTeX....................OK
build-pages >       Using: Installation From Path
build-pages >       Path: /usr/local/bin
build-pages >       Version: 2026
build-pages > 
[✓] Checking Chrome Headless....................OK
build-pages >       Using: Chrome Headless Shell installed by Quarto
build-pages >       Path: /root/.local/share/quarto/chrome-headless-shell/chrome-headless-shell-linux64/chrome-headless-shell
build-pages >       Version: 146.0.7680.66
build-pages > 
[✓] Checking basic markdown render....OK
build-pages > 
[✓] Checking R installation...........OK
build-pages >       Version: 4.3.3
build-pages >       Path: /opt/R/4.3.3/lib/R
build-pages >       LibPaths:
build-pages >         - /opt/R/4.3.3/lib/R/library
build-pages >       knitr: (None)
build-pages >       rmarkdown: (None)
build-pages > 
build-pages >       The knitr package is not available in this R installation.
build-pages >       Install with install.packages("knitr")
build-pages >       The rmarkdown package is not available in this R installation.
build-pages >       Install with install.packages("rmarkdown")
build-pages > 
[✓] Checking Python 3 installation....(None)
build-pages > 
build-pages >       Unable to locate an installed version of Python 3.
build-pages >       Install Python 3 from https://www.python.org/downloads/
build-pages > 
[✓] Checking Julia installation...

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.