I’m using it to build a FAERS 2016–2025 dataset and ran into an issue during the package-native zip download step. This is on Windows 11, x86_64-w64-mingw32, RStudio 2026.05.0 Build 218, and R version 4.4.2.
When calling faers::faers() to download/parse a quarterly FAERS ASCII file, the function begins the download but then fails inside the curl download layer.
Example quarter:
obj <- faers::faers(
year = 2016,
quarter = 1,
dir = download_dir,
compress_dir = q_compress_dir
)
Console output:
========================================
Downloading/parsing FAERS 2016Q1
========================================
Downloading 1 file from:
<https://fis.fda.gov/content/Exports/faers_ascii_2016q1.zip>
Warning in handle_setopt(handle, ..., noprogress = TRUE) :
NAs introduced by coercion to integer range
Error in handle_setopt(handle, ..., noprogress = TRUE) :
Invalid or unsupported value when setting curl option 'timeout'
I initially suspected this was caused by setting a very large or non-finite R timeout option, but the error persisted even after explicitly setting a finite timeout, for example:
and also with smaller values such as:
The issue appears to occur before parsing, during the zip file download step.
A workaround is to manually download the zip file with utils::download.file() and then pass the local file to faers::faers_parse():
zip_url <- "https://fis.fda.gov/content/Exports/faers_ascii_2016q1.zip"
zip_file <- file.path(
download_dir,
"faers_ascii_2016q1.zip"
)
utils::download.file(
url = zip_url,
destfile = zip_file,
mode = "wb",
method = "libcurl"
)
obj <- faers::faers_parse(
path = zip_file,
year = 2016,
quarter = 1,
compress_dir = q_compress_dir
)
This bypasses the download error and allows parsing to proceed.
Would it be possible to check how the package’s download helper is passing the timeout option to curl::handle_setopt()? It seems like an invalid value may be reaching curl internally, even when getOption("timeout") is finite. A few possible improvements might be:
- sanitize/coerce the timeout value before passing it to curl;
- default to a modest finite timeout if
getOption("timeout") is missing or invalid;
- expose a user-facing
timeout argument in faers() / faers_download();
- allow
faers() to skip downloading when a local zip file already exists;
- document the recommended workaround of using
faers_parse(path = local_zip).
Thanks — happy to provide session info or a minimal reproducible example if useful.
I’m using it to build a FAERS 2016–2025 dataset and ran into an issue during the package-native zip download step. This is on Windows 11, x86_64-w64-mingw32, RStudio 2026.05.0 Build 218, and R version 4.4.2.
When calling
faers::faers()to download/parse a quarterly FAERS ASCII file, the function begins the download but then fails inside the curl download layer.Example quarter:
Console output:
I initially suspected this was caused by setting a very large or non-finite R timeout option, but the error persisted even after explicitly setting a finite timeout, for example:
and also with smaller values such as:
The issue appears to occur before parsing, during the zip file download step.
A workaround is to manually download the zip file with
utils::download.file()and then pass the local file tofaers::faers_parse():This bypasses the download error and allows parsing to proceed.
Would it be possible to check how the package’s download helper is passing the timeout option to
curl::handle_setopt()? It seems like an invalid value may be reaching curl internally, even whengetOption("timeout")is finite. A few possible improvements might be:getOption("timeout")is missing or invalid;timeoutargument infaers()/faers_download();faers()to skip downloading when a local zip file already exists;faers_parse(path = local_zip).Thanks — happy to provide session info or a minimal reproducible example if useful.