Shiny Progress freezes

Describe the problem in detail

I'm building an interactive dashboard that performs some time-consuming computations, and I am trying to add progress bars to show the user that the app is making progress. Ironically, in the process, I've created some kind of lock condition where the app gets stuck. The point where it gets stuck seems to be variable; on my last run, it stalled on iteration 485063.

I've reduced the app to a minimal reprex, below, and deployed it here: https://ezra-morrison.shinyapps.io/stuck-progress/

I'd be grateful for any debugging suggestions!

Thanks,
Ezra

Example application

library(shiny)
library(glue)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

ui <- fluidPage(
  numericInput("n iterations", inputId = "n.iter", value = 10^6, min = 0, step = 1),
  actionButton("Start", inputId = "goButton", class = "btn-success"),
  plotOutput("plot")
)

loop_function = function(session, nmax = 10^5)
{
  message("here")
  progress <- Progress$new(session, min=1, max=nmax)
  on.exit(progress$close())

  progress$set(message = 'Calculation in progress',
               detail = 'This may take a while...')

  step_function = function(i)
  {
    progress$inc(amount = 1, detail = glue::glue("On iteration {i} out of {nmax}"))
    NA
  }

  dataset =
    tibble(id = 1:nmax) |>
    group_by(id) |>
    summarize(
      .groups = "drop",
      temp = step_function(id[1])
      # in my motivating application, real computation steps would occur here
    )

  plot(cars)
}

server <- function(input, output, session)
{

  plot1 =
    loop_function(session = session, nmax = input$n.iter) |>
    eventReactive(eventExpr = input$goButton)

  output$plot = plot1() |> renderPlot()

}

shinyApp(ui, server)
#> 
#> Listening on http://127.0.0.1:7587

Created on 2022-09-02 with reprex v2.0.2

Deployed app is here: https://ezra-morrison.shinyapps.io/stuck-progress/

System details

Output of devtools::session_info():

─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.2.1 (2022-06-23 ucrt)
 os       Windows 10 x64 (build 22000)
 system   x86_64, mingw32
 ui       RStudio
 language (EN)
 collate  English_United States.utf8
 ctype    English_United States.utf8
 tz       America/New_York
 date     2022-09-02
 rstudio  2022.07.1+554 Spotted Wakerobin (desktop)
 pandoc   2.18 @ C:/Program Files/RStudio/bin/quarto/bin/tools/ (via rmarkdown)

─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package     * version date (UTC) lib source
 askpass       1.1     2019-01-13 [1] CRAN (R 4.2.1)
 assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.2.1)
 cachem        1.0.6   2021-08-19 [1] CRAN (R 4.2.1)
 callr         3.7.2   2022-08-22 [1] CRAN (R 4.2.1)
 cli           3.3.0   2022-04-25 [1] CRAN (R 4.2.1)
 clipr         0.8.0   2022-02-22 [1] CRAN (R 4.2.1)
 conflicted  * 1.1.0   2021-11-26 [1] CRAN (R 4.2.1)
 crayon        1.5.1   2022-03-26 [1] CRAN (R 4.2.1)
 credentials   1.3.2   2021-11-29 [1] CRAN (R 4.2.1)
 curl          4.3.2   2021-06-23 [1] CRAN (R 4.2.1)
 DBI           1.1.3   2022-06-18 [1] CRAN (R 4.2.1)
 devtools    * 2.4.4   2022-07-20 [1] CRAN (R 4.2.1)
 digest        0.6.29  2021-12-01 [1] CRAN (R 4.2.1)
 dplyr       * 1.0.9   2022-04-28 [1] CRAN (R 4.2.1)
 ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.2.1)
 evaluate      0.16    2022-08-09 [1] CRAN (R 4.2.1)
 fansi         1.0.3   2022-03-24 [1] CRAN (R 4.2.1)
 fastmap       1.1.0   2021-01-25 [1] CRAN (R 4.2.1)
 fs            1.5.2   2021-12-08 [1] CRAN (R 4.2.1)
 generics      0.1.3   2022-07-05 [1] CRAN (R 4.2.1)
 glue          1.6.2   2022-02-24 [1] CRAN (R 4.2.1)
 highr         0.9     2021-04-16 [1] CRAN (R 4.2.1)
 htmltools     0.5.3   2022-07-18 [1] CRAN (R 4.2.1)
 htmlwidgets   1.5.4   2021-09-08 [1] CRAN (R 4.2.1)
 httpuv        1.6.5   2022-01-05 [1] CRAN (R 4.2.1)
 jsonlite      1.8.0   2022-02-22 [1] CRAN (R 4.2.1)
 knitr         1.40    2022-08-24 [1] CRAN (R 4.2.1)
 later         1.3.0   2021-08-18 [1] CRAN (R 4.2.1)
 lifecycle     1.0.1   2021-09-24 [1] CRAN (R 4.2.1)
 magrittr      2.0.3   2022-03-30 [1] CRAN (R 4.2.1)
 memoise       2.0.1   2021-11-26 [1] CRAN (R 4.2.1)
 mime          0.12    2021-09-28 [1] CRAN (R 4.2.0)
 miniUI        0.1.1.1 2018-05-18 [1] CRAN (R 4.2.1)
 openssl       2.0.2   2022-05-24 [1] CRAN (R 4.2.1)
 pillar        1.8.1   2022-08-19 [1] CRAN (R 4.2.1)
 pkgbuild      1.3.1   2021-12-20 [1] CRAN (R 4.2.1)
 pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.2.1)
 pkgload       1.3.0   2022-06-27 [1] CRAN (R 4.2.1)
 prettyunits   1.1.1   2020-01-24 [1] CRAN (R 4.2.1)
 processx      3.7.0   2022-07-07 [1] CRAN (R 4.2.1)
 profvis       0.3.7   2020-11-02 [1] CRAN (R 4.2.1)
 promises      1.2.0.1 2021-02-11 [1] CRAN (R 4.2.1)
 ps            1.7.1   2022-06-18 [1] CRAN (R 4.2.1)
 purrr         0.3.4   2020-04-17 [1] CRAN (R 4.2.1)
 R.cache       0.16.0  2022-07-21 [1] CRAN (R 4.2.1)
 R.methodsS3   1.8.2   2022-06-13 [1] CRAN (R 4.2.0)
 R.oo          1.25.0  2022-06-12 [1] CRAN (R 4.2.0)
 R.utils       2.12.0  2022-06-28 [1] CRAN (R 4.2.1)
 R6            2.5.1   2021-08-19 [1] CRAN (R 4.2.1)
 Rcpp          1.0.9   2022-07-08 [1] CRAN (R 4.2.1)
 remotes       2.4.2   2021-11-30 [1] CRAN (R 4.2.1)
 reprex      * 2.0.2   2022-08-17 [1] CRAN (R 4.2.1)
 rlang         1.0.4   2022-07-12 [1] CRAN (R 4.2.1)
 rmarkdown     2.15    2022-08-16 [1] CRAN (R 4.2.1)
 rsconnect   * 0.8.27  2022-07-12 [1] CRAN (R 4.2.1)
 rstudioapi    0.14    2022-08-22 [1] CRAN (R 4.2.1)
 sessioninfo   1.2.2   2021-12-06 [1] CRAN (R 4.2.1)
 shiny         1.7.2   2022-07-19 [1] CRAN (R 4.2.1)
 stringi       1.7.8   2022-07-11 [1] CRAN (R 4.2.1)
 stringr       1.4.1   2022-08-20 [1] CRAN (R 4.2.1)
 styler        1.7.0   2022-03-13 [1] CRAN (R 4.2.1)
 sys           3.4     2020-07-23 [1] CRAN (R 4.2.1)
 tibble        3.1.8   2022-07-22 [1] CRAN (R 4.2.1)
 tidyselect    1.1.2   2022-02-21 [1] CRAN (R 4.2.1)
 urlchecker    1.0.1   2021-11-30 [1] CRAN (R 4.2.1)
 usethis     * 2.1.6   2022-05-25 [1] CRAN (R 4.2.1)
 utf8          1.2.2   2021-07-24 [1] CRAN (R 4.2.1)
 vctrs         0.4.1   2022-04-13 [1] CRAN (R 4.2.1)
 withr         2.5.0   2022-03-03 [1] CRAN (R 4.2.1)
 xfun          0.32    2022-08-10 [1] CRAN (R 4.2.1)
 xtable        1.8-4   2019-04-21 [1] CRAN (R 4.2.1)
 yaml          2.3.5   2022-02-21 [1] CRAN (R 4.2.1)

 [1] C:/Users/Work/AppData/Local/R/win-library/4.2
 [2] C:/Program Files/R/R-4.2.1/library

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Can you please clarify.
My understanding is that the reprex you provided will function as intended and show no faults. Am I wrong about that ?

Is this reprex, expected to reproduce your problem ? if it doesn't it has extremely limited value...