diff --git a/R/server.R b/R/server.R index 69bb5a740..9c7a97888 100644 --- a/R/server.R +++ b/R/server.R @@ -668,7 +668,10 @@ runApp <- function(appDir=getwd(), } ) - return(.globals$retval) + if (inherits(.globals$retval, "try-error")) + stop(attr(.globals$retval, "condition", exact = TRUE)) + else + return(.globals$retval) } #' Stop the currently running Shiny app @@ -681,7 +684,7 @@ runApp <- function(appDir=getwd(), #' #' @export stopApp <- function(returnValue = NULL) { - .globals$retval <- returnValue + .globals$retval <- try(force(returnValue), silent = TRUE) .globals$stopped <- TRUE httpuv::interrupt() }