Can you provide a complete code involving some data and the hads object that you are using for initializing your priors.

Otherwise one thing to do is to break inside the model

and try things like

```
b.shape.eval()
pm.math.dot(X,b).shape.eval()
```

to see if you are getting object of the shape you think you

should. Another option is to do prior predictive check

https://www.pymc.io/projects/docs/en/stable/learn/core_notebooks/posterior_predictive.html

to see if your priors generate results for y which is reasonable to start with. Finally similar to above you can also check things like

```
pm.math.dot(X,b).eval({mus:mu_initi_value, M_0:...})
```

to check if reasonable initial values for your priors give reasonable mus for your regression.

Finally since your sigma seems very small you may wanna check again by eval

```
tau = 1.0/( all_sigma**2 + observed_apparent_mag_errs**2 )
```

is not very large (which would indicate sigma for your likelihood is very small which may be problematic for sampling.