fMRIPrep - OSError: [Errno 39] Directory not empty: '_report'

Hi, having issue w/fmriprep on docker:

OSError: [Errno 39] Directory not empty: '_report'

This happens even when using new work dir and on new subs ?

It goes for about an hour and then crashes at this point in autorecon_surfs

Thanks

Version:
fmriprep-23.2.0

Environment:
Docker (40GB)

Command Used:

docker run -ti --rm \
    -v $bids_dir/:/data:ro \
    -v $FS_LICENSE/:/fs_license:ro \
    -v $DERIVATIVES/:/out \
    -v $fs_dir/:/freesurfer \
    -v $DERIVATIVES/tmp/workdir:/work \
    nipreps/fmriprep:23.2.0 \
    /data /out/fmriprep-23.2.0 \
    participant --participant-label ${SID} --skip-bids-validation --verbose --fs-license-file /fs_license -w /work --output-spaces MNI152NLin2009cAsym:res-2

Relevant log outputs:

250408-20:03:28,671 nipype.workflow INFO:
	 [MultiProc] Running 2 tasks, and 0 jobs ready. Free memory (GB): 27.69/37.69, Free processors: 10/26.
                     Currently running:
                       * _autorecon_surfs1
                       * _autorecon_surfs0
250408-20:29:02,544 nipype.workflow INFO:
	 [Node] Finished "_autorecon_surfs0", elapsed time 1535.561s.
250408-20:29:03,86 nipype.workflow INFO:
	 [Job 727] Completed (_autorecon_surfs0).
250408-20:29:03,90 nipype.workflow INFO:
	 [MultiProc] Running 1 tasks, and 0 jobs ready. Free memory (GB): 32.69/37.69, Free processors: 18/26.
                     Currently running:
                       * _autorecon_surfs1
250408-20:29:03,253 nipype.workflow INFO:
	 [Node] Finished "_autorecon_surfs1", elapsed time 1536.277203s.
250408-20:29:05,90 nipype.workflow INFO:
	 [Job 728] Completed (_autorecon_surfs1).
250408-20:29:05,91 nipype.workflow INFO:
	 [MultiProc] Running 0 tasks, and 1 jobs ready. Free memory (GB): 37.69/37.69, Free processors: 26/26.
250408-20:29:05,362 nipype.workflow INFO:
	 [Node] Setting-up "_autorecon_surfs0" in "/work/fmriprep_23_2_wf/sub_1074_wf/anat_fit_wf/surface_recon_wf/autorecon_resume_wf/autorecon_surfs/mapflow/_autorecon_surfs0".
250408-20:29:05,394 nipype.workflow INFO:
	 [Node] Setting-up "_autorecon_surfs1" in "/work/fmriprep_23_2_wf/sub_1074_wf/anat_fit_wf/surface_recon_wf/autorecon_resume_wf/autorecon_surfs/mapflow/_autorecon_surfs1".
250408-20:29:05,414 nipype.workflow WARNING:
	 Storing result file without outputs
250408-20:29:05,423 nipype.workflow WARNING:
	 [Node] Error on "fmriprep_23_2_wf.sub_1074_wf.anat_fit_wf.surface_recon_wf.autorecon_resume_wf.autorecon_surfs" (/work/fmriprep_23_2_wf/sub_1074_wf/anat_fit_wf/surface_recon_wf/autorecon_resume_wf/autorecon_surfs)
250408-20:29:07,95 nipype.workflow ERROR:
	 Node autorecon_surfs failed to run on host c41f75f3fcf1.
250408-20:29:07,108 nipype.workflow ERROR:
	 Saving crash info to /out/fmriprep-23.2.0/sub-1074/log/20250408-181705_1ed0bc76-5483-481c-b256-6b9ff10cba90/crash-20250408-202907-root-autorecon_surfs-db9d6e2a-877e-4c4d-be0a-16314febc9f2.txt
Traceback (most recent call last):
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 1380, in _run_interface
    result = self._collate_results(
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 1293, in _collate_results
    raise NodeExecutionError(
nipype.pipeline.engine.nodes.NodeExecutionError: Subnodes of node: autorecon_surfs failed:
Subnode 0 failed
Error: Traceback (most recent call last):

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/utils.py", line 94, in nodelist_runner
    result = node.run(updatehash=updatehash)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 504, in run
    emptydirs(outdir, noexist_ok=True)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 805, in emptydirs
    raise ex

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 789, in emptydirs
    shutil.rmtree(path)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 725, in rmtree
    _rmtree_safe_fd(fd, path, onerror)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 664, in _rmtree_safe_fd
    onerror(os.rmdir, fullname, sys.exc_info())

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 662, in _rmtree_safe_fd
    os.rmdir(entry.name, dir_fd=topfd)

OSError: [Errno 39] Directory not empty: '_report'

Subnode 1 failed
Error: Traceback (most recent call last):

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/utils.py", line 94, in nodelist_runner
    result = node.run(updatehash=updatehash)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 504, in run
    emptydirs(outdir, noexist_ok=True)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 805, in emptydirs
    raise ex

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 789, in emptydirs
    shutil.rmtree(path)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 725, in rmtree
    _rmtree_safe_fd(fd, path, onerror)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 664, in _rmtree_safe_fd
    onerror(os.rmdir, fullname, sys.exc_info())

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 662, in _rmtree_safe_fd
    os.rmdir(entry.name, dir_fd=topfd)

OSError: [Errno 39] Directory not empty: '_report'


250408-20:29:07,123 nipype.workflow INFO:
	 [MultiProc] Running 0 tasks, and 0 jobs ready. Free memory (GB): 37.69/37.69, Free processors: 26/26.
250408-20:29:09,95 nipype.workflow INFO:
	 ***********************************
250408-20:29:09,95 nipype.workflow ERROR:
	 could not run node: fmriprep_23_2_wf.sub_1074_wf.anat_fit_wf.surface_recon_wf.autorecon_resume_wf.autorecon_surfs
250408-20:29:09,100 nipype.workflow INFO:
	 crashfile: /out/fmriprep-23.2.0/sub-1074/log/20250408-181705_1ed0bc76-5483-481c-b256-6b9ff10cba90/crash-20250408-202907-root-autorecon_surfs-db9d6e2a-877e-4c4d-be0a-16314febc9f2.txt
250408-20:29:09,100 nipype.workflow INFO:
	 ***********************************
250408-20:29:09,199 nipype.workflow CRITICAL:
	 fMRIPrep failed: Traceback (most recent call last):
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 1380, in _run_interface
    result = self._collate_results(
  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 1293, in _collate_results
    raise NodeExecutionError(
nipype.pipeline.engine.nodes.NodeExecutionError: Subnodes of node: autorecon_surfs failed:
Subnode 0 failed
Error: Traceback (most recent call last):

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/utils.py", line 94, in nodelist_runner
    result = node.run(updatehash=updatehash)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 504, in run
    emptydirs(outdir, noexist_ok=True)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 805, in emptydirs
    raise ex

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 789, in emptydirs
    shutil.rmtree(path)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 725, in rmtree
    _rmtree_safe_fd(fd, path, onerror)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 664, in _rmtree_safe_fd
    onerror(os.rmdir, fullname, sys.exc_info())

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 662, in _rmtree_safe_fd
    os.rmdir(entry.name, dir_fd=topfd)

OSError: [Errno 39] Directory not empty: '_report'

Subnode 1 failed
Error: Traceback (most recent call last):

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/utils.py", line 94, in nodelist_runner
    result = node.run(updatehash=updatehash)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 504, in run
    emptydirs(outdir, noexist_ok=True)

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 805, in emptydirs
    raise ex

  File "/opt/conda/envs/fmriprep/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 789, in emptydirs
    shutil.rmtree(path)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 725, in rmtree
    _rmtree_safe_fd(fd, path, onerror)

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 664, in _rmtree_safe_fd
    onerror(os.rmdir, fullname, sys.exc_info())

  File "/opt/conda/envs/fmriprep/lib/python3.10/shutil.py", line 662, in _rmtree_safe_fd
    os.rmdir(entry.name, dir_fd=topfd)

OSError: [Errno 39] Directory not empty: '_report'


250408-20:29:10,325 cli ERROR:
	 Preprocessing did not finish successfully. Errors occurred while processing data from participants: 1074 (1). Check the HTML reports for details.

Hi @Sotsub,

In the future please format your code and terminal outputs for readability. You can see I edited your post for you this time.

Please update fmriprep and try a fresh working directory that is located outside of the BIDS or output directory.

Best,
Steven

Gotcha will do

Ok I will try the fresh workdir outside of BIDS & output.

Thanks
NB