Problem with DiscreteUniform giving indices out of bounds

first, nTemp is the number of temperatures in the model. box.match is a list of spectral lines, each member of the list is a dict containing such things as a ‘wvl’ for the wavelength, ‘obsIntensity’, the observed intensity, the ‘intensitySum’, the predicted intensity for the line, a numpy array of size nTemp. em stands for emission-measure, basically the amount of material at 3 temperatures
basically, I am trying to use a three temperature model to reproduce the observed intensities.
what I need to have is 0 < idx0 < idx1 < idx2 <= nTemp - 1

the sampling will run for about 100-200 samples before idx2 goes out of bounds.
I am currently above to run the same problem with Pymc 2.3

I trying to run this in a jupyter ipython notebook
I am using
Python 3.6.10
Pymc3 3.7
Jupyter 1.0.0
jupyter Notebook 5.7.8
Ipython 7.13.0
all running on OpenSuse Leap 15.2 linux

the fact that the Pymc2 code runs makes me believe there may be a bug somewhere in pymc3

thanks for the interest