libcurl error when using htmlwidgets::saveWidget along with plotly::partial_bundle without an internet connection
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- R
- Estrellas
- 2.7k
- Forks
- 641
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Running the ?plotly::partial_bundle example without an internet connection available results in the below error.
I think it used to work without accessing https://cdn.plot.ly ?
As a workaround I'm now using curl::has_internet to check whether I can use partial_bundle.
Example:
library(plotly)
p <- plot_ly(x = 1:10, y = 1:10) %>% add_markers()
save_widget <- function(p, f) {
owd <- setwd(dirname(f))
on.exit(setwd(owd))
htmlwidgets::saveWidget(p, f)
mb <- round(file.info(f)$size / 1e6, 3)
message("File is: ", mb," MB")
}
f1 <- tempfile(fileext = ".html")
f2 <- tempfile(fileext = ".html")
save_widget(p, f1)
save_widget(partial_bundle(p), f2)
Error:
Error in curl::curl_download(paste0("https://cdn.plot.ly/", bundle_script), :
Could not resolve hostname [cdn.plot.ly]:
Could not resolve host: cdn.plot.ly
11.
stop(e)
10.
raise_libcurl_error(6L, "Could not resolve hostname", "Could not resolve host: cdn.plot.ly",
"https://cdn.plot.ly/plotly-basic-2.25.2.min.js", NULL)
9.
curl::curl_download(paste0("https://cdn.plot.ly/", bundle_script),
tmpfile)
8.
verify_partial_bundle(p)
7.
plotly_build.plotly(p)
6.
plotly_build(p)
5.
htmlwidgets::saveWidget(p, f)
4.
x$elementId %||% paste("htmlwidget", createWidgetId(), sep = "-")
3.
toHTML(widget, standalone = TRUE, knitrOptions = knitrOptions)
2.
htmlwidgets::saveWidget(p, f)
1.
save_widget(partial_bundle(p), f2)
sessionInfo:
R version 4.6.1 (2026-06-24 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=German_Germany.utf8 LC_CTYPE=German_Germany.utf8 LC_MONETARY=German_Germany.utf8 LC_NUMERIC=C
[5] LC_TIME=German_Germany.utf8
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] htmlwidgets_1.6.4 plotly_4.12.1 ggplot2_4.0.3 shiny_1.14.0
loaded via a namespace (and not attached):
[1] sass_0.4.10 generics_0.1.4 tidyr_1.3.2 digest_0.6.39 magrittr_2.0.5 evaluate_1.0.5
[7] grid_4.6.1 RColorBrewer_1.1-3 fastmap_1.2.0 jsonlite_2.0.0 promises_1.5.0 httr_1.4.8
[13] purrr_1.2.2 crosstalk_1.2.2 viridisLite_0.4.3 scales_1.4.0 jquerylib_0.1.4 cli_3.6.6
[19] rlang_1.3.0 withr_3.0.3 cachem_1.1.0 yaml_2.3.12 otel_0.2.0 tools_4.6.1
[25] memoise_2.0.1 dplyr_1.2.1 httpuv_1.6.17 curl_8.0.0 vctrs_0.7.3 R6_2.6.1
[31] mime_0.13 lifecycle_1.0.5 fontawesome_0.5.3 pkgconfig_2.0.3 pillar_1.11.1 bslib_0.12.0
[37] later_1.4.8 gtable_0.3.6 data.table_1.18.6.1 glue_1.8.1 Rcpp_1.1.2 xfun_0.60
[43] tibble_3.3.1 tidyselect_1.2.1 rstudioapi_0.19.0 knitr_1.51 farver_2.1.2 xtable_1.8-8
[49] htmltools_0.5.9 rmarkdown_2.31 compiler_4.6.1 S7_0.2.2
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con plotly::partial_bundle y verify_partial_bundle, que aparecen en la pila de errores, y reproduce el ejemplo con htmlwidgets::saveWidget mientras estás sin conexión. Rastrea la llamada a curl::curl_download para el bundle de CDN e inspecciona las pruebas o ejemplos existentes en torno a estos puntos de entrada. Se considera terminado cuando el flujo de trabajo sin conexión informado tiene un comportamiento definido y verificado sin el error de resolución del nombre de host.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- plotly, r
- Área
- data-visualization, networking
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 68/100