3dTproject fails inversion with multiple dsort

AFNI version info (afni -ver): AFNI_23.0.02 (Jan 24 2023)

I am trying to run 3dTproject to perform nuisance regression + filtering. I run into the follwing error whenever I use more than one dsort option:
** ERROR: SVD fails in compute_psinv()!
The reason why I have multiple dsort options is that I would like to remove the white matter first 5 principal components only from non-white matter voxels. So I am creating 5 3d+time datasets that are zero in WM and have the principal component timecourse otherwise.
I have 2 questions:

  1. how can I solve it? Is there anything I'm doing wrong?
  2. I still manage to get an output. What does it mean? Should I trust it despite the error message?
    Thanks
command:
3dTproject -input [...].nii.gz -mask [...].nii.gz -prefix [...].nii.gz -dt 1.43 -stopband 0 0.01 -ort [...]_mc.par -ort [...]_mc_D.txt -ort [...]_mc_D_D.txt -ort [...]_csf_vec.1D -dsort [...]_wm00.nii.gz -dsort [...]_wm01.nii.gz -dsort [...]_wm02.nii.gz -dsort [...]_wm03.nii.gz -dsort [...]_wm04.nii.gz 

After a little thought, I realized what you are asking to do in the WM voxels is project out 5 time series that are all identically zero. The program doesn't allow for this special case - which of course should do nothing with those 5 vectors. It is trying to calculate the pseudo-inverse of an all zero matrix (which is an all zero matrix), but using the SVD -- which fails to find any positive singular values and so is unhappy.

I'll have to patch the code to fix this problem. It shouldn't be hard, but I'll have to make sure I still have access to the GitHub repository -- I retired 3+ years ago.

Yes, that would be very appreciated, in the meanwhile I guess I can just go on with creating two datasets, one with WM regressed out and one without, and eventually merge them using a mask. (Congratulations on your retirement, I've been to an AFNI bootcamp in Lucca some 7-8 years ago, very fun and inspiring!)