-
Notifications
You must be signed in to change notification settings - Fork 92
Description
Describe the bug
Hi. Just wanted to report that my previously working code started to fail since future 1.67. The code runs inside a databricks scheduled job that pulls the newest version of the package every time it runs. This job started failing just after the 1.67 update. I can confirm that it runs successfully with the default version installed on the Databricks Runtime (i.e future 1.38) and everything else constant.
Here is the exact error message:
Error : future::evalFuture() failed on 1229-16200004-99lhyj44gy-10-1-12-13 (pid 44) at 2025-11-24T22:40:27. Using package 'future' v1.68.0. Possible other reasons: cannot change working directory
Reproduce example
A reproducible example using R code.
library(tidyverse)
library(bigrquery)
# Create a generic example dataset
set.seed(123)
example_data <- tibble(
group1 = rep(letters[1:3], each = 5),
group2 = rep(LETTERS[1:2], times = 8),
value = rnorm(15)
)
# Split data by groups
data_chunks <- example_data %>%
group_by(group1, group2) %>%
group_split()
tbl_bq <- bq_table(
"my_project",
"my_dataset",
"my_table"
)
bq_table_create(
tbl_bq,
as_bq_fields(example_data)
)
# Set up parallel processing
future::plan(future::multisession, workers = future::availableCores() - 1)
# Walk over chunks in parallel
furrr::future_walk(
data_chunks,
function(chunk) {
bq_auth(path = path)
bq_table_upload(
table = tbl_bq,
data = distinct(chunk),
write_disposition = "WRITE_APPEND"
)
}
)
# Reset plan to sequential after
future::plan(future::sequential)
Expected behavior
Run as before future 1.67
Session information
Since the error was not raised in an interactive session, I can not provide session info. Anyway I am able to provide the following details:
- It runs inside Azure Databricks with
17.3 Runtime - It pulls latest version of the
futurepackage using databricks's built in package manager (Which is based on posit package manager) at cluster level - The MRE should give you a pretty accurate idea of what is being loaded in the session. Note that for
futureas wellfurrrI use only qualified names thus not importing the package withlibrary()