Can only use Progress$new() inside a Shiny app
Opened this issue · 0 comments
tklejmont commented
Hi folks,
I have a Shiny app that's retrieving data from BigQuery using DBI and bigrquery packages. When I try to run the app from RStudio IDE I get the following error:
Error message and error stack
> rlang::last_trace(drop = FALSE)
<error/rlang_error>
Error in `initialize()`:
! Can only use Progress$new() inside a Shiny app
---
Backtrace:
▆
1. ├─shiny::runApp()
2. │ └─appParts$onStart()
3. │ └─shiny::loadSupport(appDir, renv = sharedEnv, globalrenv = globalenv())
4. │ ├─withr::with_dir(...)
5. │ │ └─base::force(code)
6. │ └─shiny:::sourceUTF8(basename(globalPath), envir = globalrenv)
7. │ └─base::eval(exprs, envir)
8. │ └─base::eval(exprs, envir)
9. ├─shiny::..stacktraceon..(...)
10. ├─base::source("./data_and_connections.R")
11. │ ├─base::withVisible(eval(ei, envir))
12. │ └─base::eval(ei, envir)
13. │ └─base::eval(ei, envir)
14. ├─DBI::dbGetQuery(con, "select * from table") at ./data_and_connections.R:75:1
15. └─DBI::dbGetQuery(con, "select * from table")
16. └─DBI (local) .local(conn, statement, ...)
17. ├─DBI::dbSendQuery(conn, statement, ...)
18. └─bigrquery::dbSendQuery(conn, statement, ...)
19. └─bigrquery (local) .local(conn, statement, ...)
20. └─bigrquery:::BigQueryResult(...)
21. └─bigrquery::bq_job_wait(job, quiet = conn@quiet)
22. └─cli::cli_progress_update()
23. └─h$add(pb, .envir = .envir)
24. └─asNamespace("shiny")$Progress$new(...)
25. └─shiny (local) initialize(...)
26. └─rlang::abort("Can only use Progress$new() inside a Shiny app")
This seems to happen during the time when a progress bar would be displayed in console to show data chunks being downloaded from BigQuery. If I limit the query to 10K rows which fits in a single chunk, the error will not come up. Does it somehow not identify that this is in fact a Shiny app? It runs fine when deployed to RStudio Connect.
Only showing the relevant code to authenticate to BQ and pull data:
library(DBI)
library(bigrquery)
library(config)
config <- config::get()
con <- dbConnect(
bigrquery::bigquery(),
project = config$project_id,
dataset = config$dataset,
billing = config$project_id
)
output <- dbGetQuery(con,"select * from table")
Session info:
> sessionInfo()
R version 4.2.3 (2023-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 22.04.4 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8
[6] LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices datasets utils methods base
other attached packages:
[1] bigrquery_1.5.1 RColorBrewer_1.1-3 openssl_2.1.0 gargle_1.5.2 shinyFeedback_0.4.0 tidyr_1.3.0 DataCombine_0.2.21
[8] lubridate_1.9.2 openxlsx_4.2.5.2 dplyr_1.1.2 jsonlite_1.8.7 RJDBC_0.2-10 rJava_1.0-6 DBI_1.2.2
[15] DT_0.28 htmlwidgets_1.6.2 shinyalert_3.0.0 shinyjs_2.1.0 shinycssloaders_1.0.0 shinyWidgets_0.7.6 shinydashboard_0.7.2
[22] shiny_1.7.4.1
loaded via a namespace (and not attached):
[1] Rcpp_1.0.10 prettyunits_1.1.1 digest_0.6.33 utf8_1.2.4 mime_0.12 R6_2.5.1 httr_1.4.7 pillar_1.9.0
[9] rlang_1.1.2 curl_5.0.1 rstudioapi_0.15.0 data.table_1.14.8 fontawesome_0.5.1 jquerylib_0.1.4 config_0.3.1 bit_4.0.5
[17] compiler_4.2.3 httpuv_1.6.11 pkgconfig_2.0.3 askpass_1.1 htmltools_0.5.5 tidyselect_1.2.0 tibble_3.2.1 codetools_0.2-19
[25] fansi_1.0.5 crayon_1.5.2 withr_2.5.0 later_1.3.1 brio_1.1.3 xtable_1.8-4 lifecycle_1.0.4 magrittr_2.0.3
[33] zip_2.3.0 cli_3.6.2 stringi_1.7.12 cachem_1.0.8 renv_1.0.2 fs_1.6.3 promises_1.2.0.1 bslib_0.5.0
[41] ellipsis_0.3.2 generics_0.1.3 vctrs_0.6.4 tools_4.2.3 bit64_4.0.5 glue_1.7.0 purrr_1.0.1 crosstalk_1.2.0
[49] fastmap_1.1.1 yaml_2.3.7 timechange_0.2.0 memoise_2.0.1 sass_0.4.7