"ses-multi" folders after processing with latest fMRIPrep

Summary of what happened:

Hello all,

I ran fMRIPrep’s latest update and, for every subject with more than one session, I got a ses-01-02, ses-01-02-03, or ses-multi-* extra folder in derivatives. These folders contain a copy of the config.toml file, found in the work folder.

I had not gotten this type of output when running fMRIPrep before. Although it seems safe to just move or eliminate it, I am wondering if it served any function or is adhering to any new organization schema for longitudinal data.

Thank you,

Catalina

Command used:

apptainer run --contain \
  -B "${TEMPLATEFLOW_DIR}:/opt/templateflow" \
  -B "${INPUT_DIR}:/input:ro" \
  -B "${OUTPUT_DIR}:/output" \
  -B "${SUB_WORK_DIR}:/work" \
  -B "${MAIN_DIR}:${MAIN_DIR}" \
  --cleanenv "${CONTAINER}" \
  /input /output participant \
  --participant-label "${SUB_NUM}" \
  --fs-license-file "${FS_LICENSE}" \
  --skip-bids-validation \
  --nthreads 8 \
  --omp-nthreads 8 \
  --subject-anatomical-reference unbiased \
  --output-spaces MNI152NLin2009cAsym:res-2 MNI152NLin6Asym:res-2 \
  --notrack \
  -w /work

Version:

25.2.3

Environment (Docker, Singularity / Apptainer, custom installation):

Apptainer

Data formatted according to a validatable standard? Please provide the output of the validator:

BIDS-Validator

Relevant log outputs (up to 20 lines):

[environment]
cpu_count = 256
exec_env = "singularity"
free_mem = 467.3
overcommit_policy = "heuristic"
overcommit_limit = "50%"
nipype_version = "1.10.0"
templateflow_version = "25.0.4"
version = "25.2.3"

[execution]
bids_dir = "/input"
bids_database_dir = "/work/20251127-114635_3d99afce-990e-4abd-b262-71f62f6d5354/bids_db"
bids_description_hash = "474bb8dc5e864ab67bf3f5b7019ccbb60c5ed5eda23066835303c73f9ebf9857"
boilerplate_only = false
sloppy = false
debug = []
fmriprep_dir = "/output"
fs_license_file = "./license.txt"
fs_subjects_dir = "/output/sourcedata/freesurfer"
layout = "BIDS Layout: .../input | Subjects: 1 | Sessions: 7 | Runs: 0"
log_dir = "/output/logs"
log_level = 25
low_mem = false
md_only_boilerplate = false
notrack = true
track_carbon = false
country_code = "CAN"
output_dir = "/output"
me_output_echos = false
aggr_ses_reports = 4
output_layout = "bids"
output_spaces = "MNI152NLin2009cAsym:res-2 MNI152NLin6Asym:res-2"
reports_only = false
run_uuid = "20251127-114635_3d99afce-990e-4abd-b262-71f62f6d5354"
processing_groups = [ "sub-02M3TD_ses-01,02,03,04,05,06,07",]
participant_label = [ "02M3TD",]
templateflow_home = "/opt/templateflow"
work_dir = "/work"
write_graph = false

[workflow]
anat_only = false
bold2anat_dof = 6
bold2anat_init = "t1w"
cifti_output = false
fmap_bspline = false
force_syn = false
hires = true
fs_no_resume = false
ignore = []
force = []
level = "full"
run_msmsulc = true
medial_surface_nan = false
project_goodvoxels = false
regressors_all_comps = false
regressors_dvars_th = 1.5
regressors_fd_th = 0.5
run_reconall = true
skull_strip_fixed_seed = false
skull_strip_template = "OASIS30ANTs"
skull_strip_t1w = "force"
slice_time_ref = 0.5
spaces = "MNI152NLin2009cAsym:res-2 MNI152NLin6Asym:res-2"
subject_anatomical_reference = "unbiased"
use_syn_sdc = false
me_t2s_fit_method = "curvefit"

[nipype]
crashfile_format = "txt"
get_linked_libs = false
nprocs = 8
omp_nthreads = 8
plugin = "MultiProc"
remove_unnecessary_outputs = true
resource_monitor = false
stop_on_first_crash = false

[seeds]
master = 17747
ants = 62527
numpy = 22373

[execution.derivatives]

[execution.dataset_links]
raw = "/input"
templateflow = "/opt/templateflow"

[nipype.plugin_args]
maxtasksperchild = 1
raise_insufficient = false

Screenshots / relevant information: