The issue here is two-fold – and I’m not sure we can get around it.
First, IVIM data tend to have far lower b-values, and this is going to cause trouble for the shell clustering algorithm, which assumes that you have sets of volumes with the same (or similar) b-values, and that each of these sets has a clearly distinct b-value from the other sets. For most of our applications, we assume volumes belong to different shells if their b-values differ by more than 80 s/mm² – this value can be modified by setting the BValueEpsilon config file option (or directly on the command line by adding the e.g. -config BValueEpsilon 50). This may get around most of the issue.
The second issue is that shells are expected to contain a sufficient number of volumes, and your IVIM data may not meet these requirements either. For our purposes, the shell clustering in MRtrix expects each (b>0) shell to contain at least 6 volumes. But the requirements for FSL’s eddy (which dwifslpreproc relies on) may differ, and this is outside of our control. You may find that adding this to your dwifslpreproc call helps: