Exception raised while executing node topup

Summary of what happened:

Hi - I’m attempting to preprocess some data with fmriprep, and keep running into the following error for one specific participant. The same code works fine for other participants. I’m calling fmriprep through docker.

Command used (and if a helper script was used, a link to the helper script or the command generated):

PASTE CODE HERE

Version:

PUT VERSION HERE

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

Docker

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

PASTE VALIDATOR OUTPUT HERE

Relevant log outputs (up to 20 lines):

251130-22:02:45,646 nipype.workflow ERROR:
	 could not run node: fmriprep_25_2_wf.sub_04_ses_01-02_wf.fmap_preproc_wf.wf_auto_00000.topup
251130-22:02:45,703 nipype.workflow CRITICAL:
	 fMRIPrep failed: Traceback (most recent call last):
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 525, in run
    result = self._run_interface(execute=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 643, in _run_interface
    return self._run_command(execute)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/pipeline/engine/nodes.py", line 769, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node topup.

Cmdline:
	topup --config=/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/sdcflows/data/flirtsch/b02b0.cnf --datain=/tmp/work/fmriprep_25_2_wf/sub_04_ses_01-02_wf/fmap_preproc_wf/wf_auto_00000/topup/sub-04_ses-01_dir-PA_epi_average_regrid001_merged_padded_sliced_volreg_encfile.txt --imain=/tmp/work/fmriprep_25_2_wf/sub_04_ses_01-02_wf/fmap_preproc_wf/wf_auto_00000/setwise_avg/sub-04_ses-01_dir-PA_epi_average_regrid001_merged_padded_sliced_volreg.nii.gz --out=sub-04_ses-01_dir-PA_epi_average_regrid001_merged_padded_sliced_volreg_base --iout=sub-04_ses-01_dir-PA_epi_average_regrid001_merged_padded_sliced_volreg_corrected.nii.gz --fout=sub-04_ses-01_dir-PA_epi_average_regrid001_merged_padded_sliced_volreg_field.nii.gz --jacout=jac --logout=sub-04_ses-01_dir-PA_epi_average_regrid001_merged_padded_sliced_volreg_topup.log --rbmout=xfm --dfout=warpfield
Stdout:

Stderr:

	Part of FSL (ID: 2412.5-dirty)
	topup

	Usage: 
	topup --imain=<some 4D image> --datain=<text file> --config=<text file with parameters> --out=my_topup_results


	Compulsory arguments (You MUST set one or more of):
		--imain		name of 4D file with images

	Optional arguments (You may optionally specify one or more of):
		--datain	name of text file with PE directions/times
		--acqp		alternative way to specify text file with PE directions/times
		--out		base-name of output files (spline coefficients (Hz) and movement parameters)
		--fout		name of image file with field (Hz)
		--iout		name of 4D image file with unwarped images
		--featout		base-name of output for export to FEAT
		--logout	Name of log-file
		--warpres	(approximate) resolution (in mm) of warp basis for the different sub-sampling levels, default 10
		--subsamp	sub-sampling scheme, default 1
		--fwhm		FWHM (in mm) of gaussian smoothing kernel, default 8
		--config	Name of config file specifying command line arguments
		--miter		Max # of non-linear iterations, default 5
		--lambda	Weight of regularisation, default depending on --ssqlambda and --regmod switches. See user documetation.
		--ssqlambda	If set (=1), lambda is weighted by current ssq, default 1
		--regmod	Model for regularisation of warp-field [membrane_energy bending_energy], default bending_energy
		--estmov	Estimate movements if set, default 1 (true)
		--minmet	Minimisation method 0=Levenberg-Marquardt, 1=Scaled Conjugate Gradient, default 0 (LM)
		--splineorder	Order of spline, 2->Qadratic spline, 3->Cubic spline. Default=3
		--numprec	Precision for representing Hessian, double or float. Default double
		--interp	Image interpolation model, linear or spline. Default spline
		--scale		If set (=1), the images are individually scaled to a common mean, default 0 (false)
		--regrid		If set (=1), the calculations are done in a different grid, default 1 (true)
		--nthr		Number of threads to use (cannot be greater than numbers of hardware cores), default 1
		-h,--help	display help info
		-v,--verbose	Print diagonostic information while running
		-h,--help	display help info



	Topup::topup_clp::topup_clp: Unrealistic read-out time, should be in range 0.01-0.2 s
Traceback:
	Traceback (most recent call last):
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 457, in aggregate_outputs
	    setattr(outputs, key, val)
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/trait_types.py", line 2634, in validate
	    return TraitListObject(self, object, name, value)
	           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/trait_list_object.py", line 584, in __init__
	    super().__init__(
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/trait_list_object.py", line 213, in __init__
	    super().__init__(self.item_validator(item) for item in iterable)
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/trait_list_object.py", line 213, in <genexpr>
	    super().__init__(self.item_validator(item) for item in iterable)
	                     ^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/trait_list_object.py", line 867, in _item_validator
	    return trait_validator(object, self.name, value)
	           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/traits_extension.py", line 325, in validate
	    value = super().validate(objekt, name, value, return_pathlike=True)
	            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
	    self.error(objekt, name, str(value))
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/traits/base_trait_handler.py", line 74, in error
	    raise TraitError(
	traits.trait_errors.TraitError: Each element of the 'out_warps' trait of a TOPUPOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/tmp/work/fmriprep_25_2_wf/sub_04_ses_01-02_wf/fmap_preproc_wf/wf_auto_00000/topup/warpfield_01.nii.gz' <class 'str'> was specified.

	During handling of the above exception, another exception occurred:

	Traceback (most recent call last):
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 404, in run
	    outputs = self.aggregate_outputs(runtime)
	              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/nipype/interfaces/base/core.py", line 464, in aggregate_outputs
	    raise FileNotFoundError(msg)
	FileNotFoundError: No such file or directory '['/tmp/work/fmriprep_25_2_wf/sub_04_ses_01-02_wf/fmap_preproc_wf/wf_auto_00000/topup/warpfield_01.nii.gz', '/tmp/work/fmriprep_25_2_wf/sub_04_ses_01-02_wf/fmap_preproc_wf/wf_auto_00000/topup/warpfield_02.nii.gz']' for output 'out_warps' of a TOPUP interface

Screenshots / relevant information:


Hi @Edward_Ester,

In the future, please use the Software Support post category and post template. You can see I have edited your post for you this time. You may edit your post to add in the missing information to help us assist you.

Do other errors precede this one in the log? Do you rerun with a fresh working directory? Have you confirmed with resource management tools such as seff (if using a SLURM cluster) that memory limits were not hit?

Do other subjects get this message?

Best,
Steven