quarto-dev / quarto-dev/quarto-cli

quarto render with execute of ipynb created in vscode fails

Open
#13,191 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug
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

A jupyter notebook created with vscode does not contain the path property in metadata.kernelspec. This leads quarto render --execute to fail. Manually adding this property, in the ipynb file with a text editor, even with an empty string, fixes the problem.

Steps to reproduce
  • create a notebook in vscode
  • add a single code cell containing 1+1
  • selected the R kernel (ir)
  • save the notebook as minimal.ipynb and run:
quarto render minimal.ipynb --output minimal.html --execute

Here is the full content of the ipynb file:

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "60eec7dd",
   "metadata": {
    "vscode": {
     "languageId": "r"
    }
   },
   "outputs": [],
   "source": [
    "1+1"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "ir"
  },
  "language_info": {
   "name": "R"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
Actual behavior

This leads to the error message (with QUARTO_PRINT_STACK=true):

ERROR: 

path
ERROR: Error
    at renderFiles (file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:86922:29)
    at eventLoopTick (ext:core/01_core.js:175:7)
    at async render (file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:91824:21)
    at async Command.actionHandler (file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:91975:32)
    at async Command.execute (file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:8253:13)
    at async Command.parseCommand (file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:8143:20)
    at async quarto (file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:133948:9)
    at async file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:133978:9
    at async file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:133830:20
    at async mainRunner (file:///tank/home/iimog/software/quarto-1.7.33/bin/quarto.js:133832:9)
Expected behavior

Successful rendering of the html file with cell output of 2.

Adapting the ipynb file from above to contain

 "metadata": {
  "kernelspec": {
   "display_name": "R",
   "language": "R",
   "name": "it",
   "path": ""
  },

fixes the problem.

Your environment
  • IDE: VS Code Version: 1.102.3
  • OS: Linux x64 6.1.0-37-amd64
Quarto check output
Quarto 1.7.33
[✓] Checking environment information...
      Quarto cache location: /tank/home/iimog/.cache/quarto
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.6.3: OK
      Dart Sass version 1.85.1: OK
      Deno version 1.46.3: OK
      Typst version 0.13.0: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.7.33
      Path: /tank/home/iimog/software/quarto-1.7.33/bin

[✓] Checking tools....................OK
      TinyTeX: v2025.06
      Chromium: (not installed)

[✓] Checking LaTeX....................OK
      Using: TinyTex
      Path: /tank/home/iimog/.TinyTeX/bin/x86_64-linux
      Version: 2025

[✓] Checking Chrome Headless....................OK
      Chrome:  (not detected)

[✓] Checking basic markdown render....OK

[✓] Checking Python 3 installation....OK
      Version: 3.11.2
      Path: /usr/bin/python3
      Jupyter: (None)

      Jupyter is not available in this Python installation.
      Install with python3 -m pip install jupyter

[✓] Checking R installation...........OK
      Version: 4.4.2
      Path: /opt/R/4.4.2/lib/R
      LibPaths:
        - /tank/home/iimog/R/x86_64-pc-linux-gnu-library/4.4
        - /opt/R/4.4.2/lib/R/library
      knitr: 1.50
      rmarkdown: 2.29

[✓] Checking Knitr engine render......OK

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.

Research direction

Run the reported quarto render minimal.ipynb --output minimal.html --execute reproduction with the supplied notebook, then trace the CLI's notebook execution path where metadata.kernelspec.path is read. Confirm that notebooks without this property render successfully and produce HTML with the cell output 2.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, jupyter-notebook, vscode
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.