It seems that within a function, when you evaluate an expression that yields an error more than once, you get the warning restarting interrupted prom
restarting interrupted prom
You can also try this without silent=TRUE if you want each error message to show. In neither case will you get the message about promises:
silent=TRUE
foo <- function() stop("Foo error") bar <- function(x) { try(eval.parent(substitute(x)), silent = TRUE) x } bar(foo())