Deploy error in curl::curl_fetch_memory

I get the following error when attempting to deploy my shiny apps:

Error in curl::curl_fetch_memory(url, handle = handle) : 
  Send failure: Connection was reset
Calls: <Anonymous> ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>

My app does not exceed the specified memory limit (8GB) and I am at loss to what could be the problem.

Grateful for any advice.

Deployment diagnostics:

----- Deployment error -----
Error in curl::curl_fetch_memory(url, handle = handle) : 
  Send failure: Connection was reset
Calls: <Anonymous> ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
 
----- Error stack trace -----
11: stop(e)
10: value[[3L]](cond)
9: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: tryCatchList(expr, classes, parentenv, handlers)
7: tryCatch({
       response <- curl::curl_fetch_memory(url, handle = handle)
   }, error = function(e, ...) {
       if (identical(e$message, "Callback aborted") || identical(e$message, 
           "transfer closed with outstanding read data remaining")) 
           return(NULL)
       else stop(e)
   })
6: system.time(gcFirst = FALSE, tryCatch({
       response <- curl::curl_fetch_memory(url, handle = handle)
   }, error = function(e, ...) {
       if (identical(e$message, "Callback aborted") || identical(e$message, 
           "transfer closed with outstanding read data remaining")) 
           return(NULL)
       else stop(e)
   }))
5: http(presigned_service$protocol, presigned_service$host, presigned_service$port, 
       "PUT", presigned_service$path, headers, headers$`Content-Type`, 
       bundlePath)
4: uploadBundle(bundle, bundleSize, bundlePath)
3: force(code)
2: withStatus(paste0("Uploading bundle for ", assetTypeName, ": ", 
       application$id), {
       python <- getPythonForTarget(python, accountDetails)
       bundlePath <- bundleApp(target$appName, appDir, appFiles, 
           appPrimaryDoc, assetTypeName, contentCategory, verbose, 
           python)
       if (isShinyapps(accountDetails)) {
           bundleSize <- file.info(bundlePath)$size
           checksum <- fileMD5.as.string(bundlePath)
           bundle <- client$createBundle(application$id, "application/x-tar", 
               bundleSize, checksum)
           if (verbose) 
               timestampedLog("Starting upload now")
           if (!uploadBundle(bundle, bundleSize, bundlePath)) {
               stop("Could not upload file.")
           }
           if (verbose) 
               timestampedLog("Upload complete")
           response <- client$updateBundleStatus(bundle$id, status = "ready")
           bundle <- client$getBundle(bundle$id)
       }
       else {
           bundle <- client$uploadApplication(application$id, bundlePath)
       }
   })
1: rsconnect::deployApp(appDir = "C:/Users/Anamria Elek/Desktop/cross_sp_app", 
       appFileManifest = "C:/Users/ANAMRI~1/AppData/Local/Temp/c144-9746-f1e5-e7b8", 
       appPrimaryDoc = "app-tree.R", account = "sebe-lab", server = "shinyapps.io", 
       appName = "cross_sp_tree", appId = 2623128, launch.browser = function(url) {
           message("Deployment completed: ", url)
       }, lint = FALSE, metadata = list(asMultiple = FALSE, asStatic = FALSE, 
           ignoredFiles = "app-cross-sp.R|config.yaml"), logLevel = "verbose")

Output of rsconnect::appDependencies():

              package    version       source
1                  BH   1.72.0-3         CRAN
2             Biobase     2.46.0 Bioconductor
3        BiocGenerics     0.32.0 Bioconductor
4         BiocManager    1.30.10         CRAN
5      ComplexHeatmap      2.5.3       github
6                  DT       0.12         CRAN
7          GetoptLong      0.1.8         CRAN
8       GlobalOptions      0.1.2         CRAN
9             IRanges     2.20.2 Bioconductor
10               MASS   7.3-51.4         CRAN
11             Matrix     1.2-18         CRAN
12                 R6      2.4.1         CRAN
13       RColorBrewer      1.1-2         CRAN
14               Rcpp      1.0.5         CRAN
15          S4Vectors     0.24.4 Bioconductor
16          animation        2.6         CRAN
17                ape        5.3         CRAN
18            askpass        1.1         CRAN
19         assertthat      0.2.1         CRAN
20          backports      1.1.7         CRAN
21          base64enc      0.1-3         CRAN
22              callr      3.4.2         CRAN
23           circlize     0.4.10         CRAN
24                cli      2.0.2         CRAN
25              clipr      0.7.0         CRAN
26               clue     0.3-57         CRAN
27            cluster      2.1.0         CRAN
28  clusterGeneration      1.3.4         CRAN
29               coda     0.19-3         CRAN
30          codetools     0.2-16         CRAN
31         colorspace      1.4-1         CRAN
32           combinat      0.0-8         CRAN
33              cpp11      0.2.1         CRAN
34             crayon      1.3.4         CRAN
35          crosstalk      1.0.0         CRAN
36               curl        4.3         CRAN
37         data.table     1.12.8         CRAN
38         dendextend     1.13.4         CRAN
39               desc      1.2.0         CRAN
40             digest     0.6.25         CRAN
41         doParallel     1.0.15         CRAN
42              dplyr      0.8.5         CRAN
43           ellipsis      0.3.1         CRAN
44           evaluate       0.14         CRAN
45               expm    0.999-5         CRAN
46              fansi      0.4.1         CRAN
47             farver      2.0.3         CRAN
48            fastmap      1.0.1         CRAN
49          fastmatch      1.1-0         CRAN
50            foreach      1.4.8         CRAN
51            ggplot2      3.3.2         CRAN
52             ggtree      2.0.1 Bioconductor
53               glue      1.4.1         CRAN
54          gridExtra        2.3         CRAN
55             gtable      0.3.0         CRAN
56             gtools      3.8.1         CRAN
57              highr        0.8         CRAN
58                hms      0.5.3         CRAN
59          htmltools      0.4.0         CRAN
60        htmlwidgets      1.5.1         CRAN
61             httpuv      1.5.2         CRAN
62               httr      1.4.1         CRAN
63             igraph      1.2.5         CRAN
64            isoband      0.2.0         CRAN
65          iterators     1.0.12         CRAN
66           jsonlite      1.6.1         CRAN
67         kableExtra      1.1.0         CRAN
68              knitr       1.28         CRAN
69           labeling        0.3         CRAN
70              later      1.0.0         CRAN
71            lattice    0.20-38         CRAN
72           lazyeval      0.2.2         CRAN
73          lifecycle      0.2.0         CRAN
74             magick        2.3         CRAN
75           magrittr        1.5         CRAN
76               maps      3.3.0         CRAN
77           markdown        1.1         CRAN
78               mgcv     1.8-31         CRAN
79               mime        0.9         CRAN
80             mnormt      1.5-5       github
81            munsell      0.5.0         CRAN
82               nlme    3.1-142         CRAN
83           numDeriv 2016.8-1.1         CRAN
84            openssl      1.4.1         CRAN
85           phangorn      2.5.5         CRAN
86           phytools     0.7-47         CRAN
87             pillar      1.4.4         CRAN
88           pkgbuild      1.0.6         CRAN
89          pkgconfig      2.0.3         CRAN
90            pkgload      1.0.2         CRAN
91              plogr      0.2.0         CRAN
92            plotrix      3.7-8         CRAN
93                png      0.1-7         CRAN
94             praise      1.0.0         CRAN
95        prettyunits      1.1.1         CRAN
96           processx      3.4.2         CRAN
97           promises      1.1.0         CRAN
98                 ps      1.3.2         CRAN
99              purrr      0.3.4         CRAN
100          quadprog      1.5-8         CRAN
101             readr      1.3.1         CRAN
102             rjson     0.2.20         CRAN
103             rlang      0.4.6         CRAN
104         rmarkdown        2.1         CRAN
105         rprojroot      1.3-2         CRAN
106        rstudioapi       0.11         CRAN
107           rvcheck      0.1.8         CRAN
108             rvest      0.3.5         CRAN
109            scales      1.1.0         CRAN
110     scatterplot3d     0.3-41         CRAN
111           selectr      0.4-2         CRAN
112             shape      1.4.4         CRAN
113             shiny    1.4.0.1         CRAN
114      shinyWidgets      0.5.3         CRAN
115       sourcetools      0.1.7         CRAN
116           stringi      1.4.6         CRAN
117           stringr      1.4.0         CRAN
118               sys        3.3         CRAN
119          testthat      2.3.2         CRAN
120            tibble      3.0.3         CRAN
121             tidyr      1.1.1         CRAN
122        tidyselect      1.1.0         CRAN
123          tidytree      0.3.2         CRAN
124           tinytex       0.20         CRAN
125            treeio     1.10.0 Bioconductor
126              utf8      1.1.4         CRAN
127             vctrs      0.3.0         CRAN
128           viridis      0.5.1         CRAN
129       viridisLite      0.3.0         CRAN
130           webshot      0.5.2         CRAN
131             withr      2.2.0         CRAN
132              xfun       0.12         CRAN
133              xml2      1.2.5         CRAN
134            xtable      1.8-4         CRAN
135              yaml      2.2.1         CRAN
136               zoo      1.8-7         CRAN

Hi,

I think indeed this is not to do with the memory of the app, but with the files you're trying to get/put with curl. I think there are limits on what file sizes can be uploaded, or the time it takes for doing so. I'm not very good at this, so I could be wrong, but maybe it can guide you towards a solution.

Hope this helps,
PJ

After running out of ideas myself, I tried to deploy the same app from different OS (Scientifc Linux 7.2 instead of Windows 10), and it worked without problem, so the issue must have been one of the system-level libraries... Still very much confused and annoyed by this.

Hi,

Yea I feel you, these things can be very cryptic. Maybe it has to do with firewall settings or some network restrictions of the machine / network you're on. Glad you found at lease a workaround for now.

PJ