Cryptic error from install_github() if reference doesn't exist #1204
If you try to install from github ref that doesn't exist, the error message can be pretty odd. Here's an attempt to install from a PR that has been closed and the underlying branch deleted.
devtools::install_github("rstudio/rmarkdown#711") #> Using GitHub PAT from envvar GITHUB_PAT #> Using GitHub PAT from envvar GITHUB_PAT #> Downloading GitHub repo rstudio/rmarkdown@feature/html-vignette-readme #> from URL https://api.github.com/repos/rstudio/rmarkdown/zipball/feature/html-vignette-readme #> No encoding supplied: defaulting to UTF-8. #> Error: lexical error: invalid char in json text. #> Not Found #> (right here) ------^
I get same message for a tag or SHA or branch that never existed, i.e.,
But the error for a PR that never existed is different and is more informative.
devtools::install_github("rstudio/rmarkdown#20000") #> Using GitHub PAT from envvar GITHUB_PAT #> condition in stop(github_error(req)): Not Found (404) #> *
The text was updated successfully, but these errors were encountered:
GitHub returns a regular HTTP response in the first case, whereas in the second it returns a JSON response. Devtools is always expecting a JSON response, which is why you got the confusing error.
#1211 tries to parse the response as JSON, if it fails it treats the response content as a message which cleans up this issue.
download_github(tempfile(), "https://api.github.com/repos/rstudio/rmarkdown/zipball/feature/html-vignette-readme") #> Error in stop(github_error(request)) : Not Found (404)