quarto_render function return error

Hi!
I wrote a small program to produce invoice from a data base following this tutorial, that worked fine until I update Xcode and reinstall xz library in order to install Typst.

My set up is :
RStudio : "2023.09.1+494"
MacOS : 11.7.10
Quarto version (external of the one in R): 1.5.57
Quarto package version : "1.4.4"
X code version : Xcode 13.2.1 Build version 13C100

reports = tibble::tibble(input = "Invoice_template.qmd",  
                         output_file = stringr::str_glue("INVOICES/facture_no_{non_dup_df$invoice_no}.pdf"),
                         execute_params = map(non_dup_df$invoice_no, ~list(invoice_no = .)))

quarto::quarto_render(input = "Invoice_template.qmd", 
              output_file = "Invoice_no_0016-20240813-632323.pdf", 
              execute_params = reports[16, "execute_params"], 
              quiet = FALSE, debug = TRUE)

# purrr::pwalk(reports, quarto::quarto_render)

Returns:

Error in knit_params_get(input_lines, params) : 
  render params not declared in YAML: execute_params
Calls: .main -> execute -> <Anonymous> -> knit_params_get
Execution halted

The first error seems to be related to Yalm and missing parameters. It led me here, but default params are declared in my Yalm template:

---
title: ""
format: 
  pdf:
    mainfont: Calibri
    papersize: a4
    fig-pos: 'H'
    header-includes:
      - \usepackage{float}
      - \floatplacement{table}{H}
    geometry:
      - inner=1.5cm
      - outer=1.5cm
      - top=2cm
      - bottom=4cm
      - headsep=7pt
      - headheight=5pt
      - footskip=33pt
      - ignorehead
      - ignorefoot
      - heightrounded
editor: visual
params:
  invoice_no: "0016-20240813-632323"
---

Second error message is probably related to the first one but I'm not sure because the program worked good before I made update Xcode and and reinstall xz lib.

Error in `quarto::quarto_render()`:
✖ Error running quarto cli.
Caused by error:
! System command 'quarto' failed
Run `rlang::last_trace()` to see where the error occurred.
> rlang::last_trace()
<error/rlang_error>
Error in `quarto::quarto_render()`:
✖ Error running quarto cli.
Caused by error:
! System command 'quarto' failed
---
Backtrace:
    ▆
 1. └─quarto::quarto_render(...)
 2.   └─quarto:::quarto_run(args, echo = TRUE, quarto_bin = quarto_bin)
Run rlang::last_trace(drop = FALSE) to see 6 hidden frames.
> rlang::last_trace(drop = FALSE)
<error/rlang_error>
Error in `quarto::quarto_render()`:
✖ Error running quarto cli.
Caused by error:
! System command 'quarto' failed
---
Backtrace:
    ▆
 1. └─quarto::quarto_render(...)
 2.   └─quarto:::quarto_run(args, echo = TRUE, quarto_bin = quarto_bin)
 3.     └─base::tryCatch(...)
 4.       └─base (local) tryCatchList(expr, classes, parentenv, handlers)
 5.         └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
 6.           └─value[[3L]](cond)
 7.             └─cli::cli_abort(msg, call = .call, parent = e)
 8.               └─rlang::abort(...)

Any idea?

EDIT:
The Render button works fine.
The quarto::quarto_render function also works with the default quarto file format: pdf proposed in RStudio.
So the problem seems related to the call of the parameters in the template.
Also note that the exemple used to build my program in the first place does not function anymore.

What will be the result of this ?

quarto render will take a YAML file for parameters so quarto_render() will write the content of execute_params to YAML : Parameters – Quarto

As you parameters is

This is your parameters declared, so I would expect that your call would be something similar to

quarto_render(...., execute_params = list(invoice_no = "XXXX-XXXXXXXX-XXXXXX")

You should check this.

If you can provide a reproducible example I can look into that.

One way to debug forward would be to use quarto render at terminal on your project. This way you can understand if your document works with Quarto, then you can use the R function to script your way around the loop you need to do.

Hope it helps