fMRIPrep error exit code 137 — Docker on macOS

Summary of what happened:

Hi everyone,
I’m running fMRIPrep (v25.2.4) on one subject via Docker on macOS, however, I get an error in my .html. I would appreciate any help and indication on what is the problem and how it can be fixed.

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

FMRIPREP_CMD="/Users/*/Library/Python/3.9/bin/fmriprep-docker"

if [ ! -f "$FMRIPREP_CMD" ]; then
  echo "ERROR: fmriprep-docker not found at $FMRIPREP_CMD"
  exit 1
fi

mem=${mem//[!0-9]/}
mem_mb=$(( (mem * 1000) - 5000 ))

export TEMPLATEFLOW_HOME=$HOME/.cache/templateflow

"$FMRIPREP_CMD" "$bids_root_dir" "$bids_root_dir/derivatives" \
  participant \
  --participant-label "$subj" \
  --fs-license-file "$bids_root_dir/derivatives/license.txt" \
  --output-spaces MNI152NLin2009cAsym:res-2 \
  --nthreads "$nthreads" \
  --mem_mb "$mem_mb" \
  --stop-on-first-crash \
  -w /tmp

Version:

25.2.4

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):

The resulting files/folder structure after running fmriprep is:

├── dataset_description.json
├── license.txt
├── logs
│   ├── CITATION.bib
│   ├── CITATION.html
│   ├── CITATION.md
│   └── CITATION.tex
├── sourcedata
│   └── freesurfer
│       └── fsaverage
│           ├── label
│           ├── mri
│           ├── mri.2mm
│           ├── scripts
│           ├── surf
│           └── xhemi
├── sub-1001
│   ├── figures
│   │   ├── sub-1001_desc-about_T1w.html
│   │   ├── sub-1001_desc-conform_T1w.html
│   │   ├── sub-1001_desc-summary_T1w.html
│   │   ├── sub-1001_task-AST_dir-PA_desc-validation_bold.html
│   │   ├── sub-1001_task-MT_dir-PA_desc-validation_bold.html
│   │   ├── sub-1001_task-Rest_dir-PA_desc-validation_bold.html
│   │   └── sub-1001_task-SST_dir-PA_desc-validation_bold.html
│   ├── func
│   │   ├── sub-1001_task-AST_dir-PA_desc-hmc_boldref.json
│   │   ├── sub-1001_task-AST_dir-PA_desc-hmc_boldref.nii.gz
│   │   ├── sub-1001_task-MT_dir-PA_desc-hmc_boldref.json
│   │   ├── sub-1001_task-MT_dir-PA_desc-hmc_boldref.nii.gz
│   │   ├── sub-1001_task-Rest_dir-PA_desc-hmc_boldref.json
│   │   ├── sub-1001_task-Rest_dir-PA_desc-hmc_boldref.nii.gz
│   │   ├── sub-1001_task-SST_dir-PA_desc-hmc_boldref.json
│   │   └── sub-1001_task-SST_dir-PA_desc-hmc_boldref.nii.gz
│   └── log
│       └── 20260304-122404_f04807d4-6b51-4d36-8161-a411caf89e6d
│           ├── crash-20260304-122622-root-slice_timing_correction-dba9af24-815f-4e1c-92a3-771ab7cfe3ec.txt
│           └── fmriprep.toml
└── sub-1001.html

As can be seen, there are no preprocessed anatomical data and quite frankly, I am not understanding much of this output data.

The subject .html shows:

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 slice_timing_correction.

Cmdline:
  3dTshift \
    -ignore 1 \
    -prefix sub-1001_task-SST_dir-PA_bold_tshift.nii.gz \
    -tpattern @slice_timing.1D \
    -TR 1.5s \
    -tzero 0.699 \
    /scratch/fmriprep_25_2_wf/sub_1001_wf/bold_task_SST_dir_PA_wf/bold_native_wf/bold_stc_wf/slice_timing_correction/sub-1001_task-SST_dir-PA_bold.nii.gz

Stdout:

Stderr:
++ 3dTshift: AFNI version=AFNI_25.2.09 (Aug 24 2025) [64-bit]

** AFNI converts NIFTI_datatype=512 (UINT16) in file
   /scratch/fmriprep_25_2_wf/sub_1001_wf/bold_task_SST_dir_PA_wf/bold_native_wf/bold_stc_wf/slice_timing_correction/sub-1001_task-SST_dir-PA_bold.nii.gz
   to FLOAT32

Warnings of this type will be muted for this session.
Set AFNI_NIFTI_TYPE_WARN to YES to see them all, NO to see none.

*+ WARNING:
If you are performing spatial transformations on an oblique dset, such as
/scratch/fmriprep_25_2_wf/sub_1001_wf/bold_task_SST_dir_PA_wf/bold_native_wf/bold_stc_wf/slice_timing_correction/sub-1001_task-SST_dir-PA_bold.nii.gz,
or viewing/combining it with volumes of differing obliquity, you should consider running:

  3dWarp -deoblique

on this and other oblique datasets in the same session.
See `3dWarp -help` for details.

++ Oblique dataset:
/scratch/fmriprep_25_2_wf/sub_1001_wf/bold_task_SST_dir_PA_wf/bold_native_wf/bold_stc_wf/slice_timing_correction/sub-1001_task-SST_dir-PA_bold.nii.gz
is 18.275352 degrees from plumb.

Killed

Traceback:
RuntimeError: subprocess exited with code 137

Apologies for the long message but I am utterly confused about what happened and what I am looking at. I’ll appreciate any help!

Thanks in advance!!

Screenshots / relevant information:


Hi @tbn,

In the future please use the software support post template.

You ran out of memory.

Best,
Steven