Error with package `stringfish` when deploying to shinyapps.io

Hello,
I'm trying to deploy an application to shinyapps.io using RStudio Desktop's "Publish to Desktop" interface. The application I'm trying to deploy loads a few .rda files as it loads so these objects can be used by the application. Locally everything works, but when deploying on shinyapps.io I get a lot of warnings for each of the .rda files that look something like:

2024-10-02T12:10:01.929432+00:00 shinyapps[12897247]: Warning in load(here::here("data", "calib_df_v1.rda")) :
2024-10-02T12:10:01.934652+00:00 shinyapps[12897247]:   cannot unserialize ALTVEC object of class '__sf_vec__' from package 'stringfish'; returning length zero vector

The above is actually the the part of the Logs from shinyapps.io. As you can see, I'm trying to use package here to load a data frame (base class) as object calib_df_v1.rda.

The application loads and runs perfectly locally, I run the application as a background job to try and keep the session as clean as possible.

I have honestly never seen this error nor even heard of the stringfishpackage so I'm really not sure what's going on here.

For reference, when running the application locally as part of my live session, my info is:

> sessionInfo()
R version 4.4.1 (2024-06-14 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 22621)

Matrix products: default


locale:
[1] LC_COLLATE=English_United Kingdom.utf8  LC_CTYPE=English_United Kingdom.utf8   
[3] LC_MONETARY=English_United Kingdom.utf8 LC_NUMERIC=C                           
[5] LC_TIME=English_United Kingdom.utf8    

time zone: Europe/London
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
[1] CelloShiny_0.0.1  data.table_1.16.0 magrittr_2.0.3    shiny_1.9.1      

loaded via a namespace (and not attached):
 [1] fresh_0.2.1           shinyvalidate_0.1.3   gtable_0.3.5          xfun_0.47            
 [5] bslib_0.8.0           ggplot2_3.5.1         htmlwidgets_1.6.4     vctrs_0.6.5          
 [9] tools_4.4.1           generics_0.1.3        curl_5.2.3            tibble_3.2.1         
[13] fansi_1.0.6           pkgconfig_2.0.3       RcppParallel_5.1.9    CelloConjoint_0.4.1.2
[17] lifecycle_1.0.4       compiler_4.4.1        stringr_1.5.1         munsell_0.5.1        
[21] fontawesome_0.5.2     httpuv_1.6.15         htmltools_0.5.8.1     sass_0.4.9           
[25] yaml_2.3.10           lazyeval_0.2.2        plotly_4.10.4         later_1.3.2          
[29] pillar_1.9.0          jquerylib_0.1.4       tidyr_1.3.1           openssl_2.2.2        
[33] rsconnect_1.3.1       cachem_1.1.0          mime_0.12             tidyselect_1.2.1     
[37] digest_0.6.37         stringi_1.8.4         dplyr_1.1.4           purrr_1.0.2          
[41] rprojroot_2.0.4       fastmap_1.2.0         grid_4.4.1            here_1.0.1           
[45] colorspace_2.1-1      cli_3.6.3             utf8_1.2.4            reactR_0.6.1         
[49] withr_3.0.1           scales_1.3.0          promises_1.3.0        httr_1.4.7           
[53] askpass_1.2.0         stringfish_0.16.0     memoise_2.0.1         knitr_1.48           
[57] shinycssloaders_1.1.0 viridisLite_0.4.2     rlang_1.1.4           Rcpp_1.0.13          
[61] reactable_0.4.4       xtable_1.8-4          glue_1.8.0            renv_1.0.9           
[65] shinydashboard_0.7.2  rstudioapi_0.16.0     jsonlite_1.8.9        R6_2.5.1   

Any thoughts or ideas would be much appreciated!

Just an update. I reverted to the previous version of stringfish (i.e. renv::install('stringfish@0.15.8')) and was able to replicate the error shinyapps.io was returning. As a temporary fix I have to install an upgrade to stringfish as my app loads, which is not ideal as it makes the loading time of the application much lengthier. If anyone has any suggestions on how to make this update to stringfish as the container is created (which would be ideal) please let me know.

One more update. I did some more testing and I've replaced the explicit installation of the stringfish depencency with an actual call to load it at the top of the app (i.e. library(stringfish)) and that has resolved everything. I have to admit I'm a bit bemused as to why the app runs well locally without explicitly loading the library but I will go with this for now.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.