I've run into the follow issue while developing the jugglr package, and tried to debug it with Claude Code. I asked Claude Code to write the following report, based on the context, what it's tried, and what it's discovered. This is what it says...
Problem
Since upgrading to devtools 2.5.x, build_readme() fails with a pak subprocess error:
! error in pak subprocess
Caused by error in `seq.default(grps[start] + 1, grps[start + 1] - 1)`:
! 'from' must be of length 1
The same error is triggered by pak::meta_clean(force = TRUE), confirming the issue is in the pak subprocess itself, not the rendering step.
Reprex
The package in question has no Bioconductor dependencies. Its Imports are: cli, dplyr, ggplot2, marquee, purrr, rlang, S7, stringr.
Workaround
devtools::install(quick = TRUE)
rmarkdown::render("README.Rmd", output_format = "github_document")
This bypasses the pak dependency-checking step entirely and works correctly.
Investigation
The error originates from the switch to pak in 2.5.0. The call chain is:
build_readme()
→ build_rmd_impl()
→ local_install()
→ pkg_dep_status()
→ pak::local_dev_deps() # ← pak subprocess spawned here
Before 2.5.0, this used remotes::install_deps() directly; no subprocess was involved.
Tracing the error: the grps[start] pattern in seq.default(grps[start] + 1, grps[start + 1] - 1) appears at line 192 of remotes/install-github.R, inside get_version_map(). This function fetches and parses the Bioconductor YAML config to resolve the R/Bioc version map. It fails when grep("r_ver_for_bioc_ver", txt) returns character(0) — which happens if the YAML fetch returns empty content — causing match() to return integer(0), making grps[start] an empty vector and seq() error.
However, pak does not bundle remotes. It bundles pkgcache, which handles its own Bioconductor metadata fetching (confirmed: pkgcache is actively populating BioCann, BioCbooks, BioCexp, BioCsoft, BioCworkflows directories in its metadata cache). Since pkgcache is stored as compiled bytecode (.rdb/.rdx) rather than source, its internals can't be grepped — but it almost certainly contains the same get_version_map-style code path.
Further diagnostics:
getOption("repos") in the IDE session shows only CRAN — no Bioconductor repos configured
.libPaths() is normal (user library + system library)
- Wiping the entire pkgcache directory (
unlink(tools::R_user_dir("pkgcache", "cache"), recursive = TRUE)) does not resolve the error
- Running
pak::local_dev_deps(".") from a terminal R session succeeds
Network access from the pak subprocess is confirmed to work — running the following from the IDE session successfully returns the first lines of the Bioconductor YAML:
callr::r(function() {
readLines(url("https://bioconductor.org/config.yaml"), n = 5)
})
This rules out network connectivity as the cause. The root cause remains unidentified. It is likely in pkgcache's compiled bytecode (stored as .rdb/.rdx, not greppable source), which almost certainly contains the same get_version_map-style code path triggered under conditions specific to the Positron subprocess environment.
Environment
devtools 2.5.2
pak 0.9.5
remotes 2.5.0
R 4.5 (arm64, macOS Darwin 25.2.0)
IDE: Positron
Positron Version: 2026.05.2 build 3
Code - OSS Version: 1.109.2
Commit: 1b5dfba9314510340cb08f2fedccc5ffba822beb
Date: 2026-05-13T18:53:45.115Z
Electron: 39.3.0
Chromium: 142.0.7444.265
Node.js: 22.21.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.2.0
I've run into the follow issue while developing the jugglr package, and tried to debug it with Claude Code. I asked Claude Code to write the following report, based on the context, what it's tried, and what it's discovered. This is what it says...
Problem
Since upgrading to devtools 2.5.x,
build_readme()fails with a pak subprocess error:The same error is triggered by
pak::meta_clean(force = TRUE), confirming the issue is in the pak subprocess itself, not the rendering step.Reprex
The package in question has no Bioconductor dependencies. Its
Importsare:cli,dplyr,ggplot2,marquee,purrr,rlang,S7,stringr.Workaround
This bypasses the pak dependency-checking step entirely and works correctly.
Investigation
The error originates from the switch to pak in 2.5.0. The call chain is:
Before 2.5.0, this used
remotes::install_deps()directly; no subprocess was involved.Tracing the error: the
grps[start]pattern inseq.default(grps[start] + 1, grps[start + 1] - 1)appears at line 192 ofremotes/install-github.R, insideget_version_map(). This function fetches and parses the Bioconductor YAML config to resolve the R/Bioc version map. It fails whengrep("r_ver_for_bioc_ver", txt)returnscharacter(0)— which happens if the YAML fetch returns empty content — causingmatch()to returninteger(0), makinggrps[start]an empty vector andseq()error.However, pak does not bundle
remotes. It bundlespkgcache, which handles its own Bioconductor metadata fetching (confirmed:pkgcacheis actively populating BioCann, BioCbooks, BioCexp, BioCsoft, BioCworkflows directories in its metadata cache). Since pkgcache is stored as compiled bytecode (.rdb/.rdx) rather than source, its internals can't be grepped — but it almost certainly contains the sameget_version_map-style code path.Further diagnostics:
getOption("repos")in the IDE session shows only CRAN — no Bioconductor repos configured.libPaths()is normal (user library + system library)unlink(tools::R_user_dir("pkgcache", "cache"), recursive = TRUE)) does not resolve the errorpak::local_dev_deps(".")from a terminal R session succeedsNetwork access from the pak subprocess is confirmed to work — running the following from the IDE session successfully returns the first lines of the Bioconductor YAML:
This rules out network connectivity as the cause. The root cause remains unidentified. It is likely in pkgcache's compiled bytecode (stored as
.rdb/.rdx, not greppable source), which almost certainly contains the sameget_version_map-style code path triggered under conditions specific to the Positron subprocess environment.Environment