Should be identical but only one model specification works?

This is an excerpt from my model, where I’m specifying one of the three distributions in pm.Mixture two different ways. These should both be identical in the sense that they are uniform circular distributions, but only the second one works and doesn’t output an error of “ValueError: Domain error in arguments.” after running pm.sample_prior_predictive. Could anyone tell me why the first one gives me this error? I’ve included my full model at the very end in case it’s relevant. Thank you so much for your guidance.

  1. dists = [
         pm.VonMises.dist(mu=mushift[id], kappa=0.0),
         pm.VonMises.dist(mu=mushift[id], kappa=precision[id]), 
         pm.VonMises.dist(mu=m, kappa=precision2[id]), 
     ]
     
     w = tt.stack([1 - pmem[id], pmem[id] * ptar[id], pmem[id] * (1-ptar[id])])
     
     y = pm.Mixture('y', w.T, dists, observed=x)
    
     prior = pm.sample_prior_predictive()
    
  2. dists = [
         pm.VonMises.dist(mu=mushift[id], kappa=0.000000000001),
         pm.VonMises.dist(mu=mushift[id], kappa=precision[id]), 
         pm.VonMises.dist(mu=m, kappa=precision2[id]), 
     ]
     
     w = tt.stack([1 - pmem[id], pmem[id] * ptar[id], pmem[id] * (1-ptar[id])])
     
     y = pm.Mixture('y', w.T, dists, observed=x)
    
     prior = pm.sample_prior_predictive()
    

full model:

with pm.Model() as hierarchical_model:
    # Priors
    Cshift = pm.TruncatedNormal('Cshift', mu=0, sd=.5, lower=np.deg2rad(-15), upper=np.deg2rad(15))
    Csd = pm.Gamma('Csd', alpha=2, beta=10)
    
    CmA = pm.Exponential('CmA', .1)
    CmB = pm.Exponential('CmB', .1)
    
    CtA = pm.Exponential('CtA', .1)
    CtB = pm.Exponential('CtB', .1)
    
    Cshape = pm.Exponential('Cshape', .1)
    Crate = pm.Exponential('Crate', .1)
    Cshape2 = pm.Exponential('Cshape2', .1)
    Crate2 = pm.Exponential('Crate2', .1)
    
    # Deterministic transformations   
    Cmem = pm.Deterministic('Cmem',CmA/(CmA + CmB)) # 1-Cmem = prop of random guessing
    Ctarget = pm.Deterministic('Ctarget',Cmem * (CtA/(CtA + CtB)))
    Cswap = pm.Deterministic('Cswap',Cmem * (1-(CtA/(CtA + CtB)))) 

    # Subject-level
    mushift_tilde = pm.Normal('mushift_tilde', mu=0, sd=1, shape=nsubj) #non-centered reparameterization
    mushift = pm.Deterministic('mushift', Cshift + mushift_tilde * Csd)
    pmem = pm.Beta('pmem', alpha=CmA, beta=CmB, shape=nsubj)
    ptar = pm.Beta('ptar', alpha=CtA, beta=CtB, shape=nsubj)
    precision = pm.Bound(pm.Gamma, lower=.609, upper=33.33)('precision', alpha=Cshape, beta=Crate, shape=nsubj)
    precision2 = pm.Bound(pm.Gamma, lower=.609, upper=33.33)('precision2', alpha=Cshape2, beta=Crate2, shape=nsubj)
    
    # Trial-level
    dists = [
        pm.VonMises.dist(mu=mushift[id], kappa=0.0), #random guessing
        pm.VonMises.dist(mu=mushift[id], kappa=precision[id]), #target with bias
        pm.VonMises.dist(mu=m, kappa=precision2[id]), #swap
    ]
    
    w = tt.stack([1 - pmem[id], pmem[id] * ptar[id], pmem[id] * (1-ptar[id])])
    
    y = pm.Mixture('y', w.T, dists, observed=x)
    
    prior = pm.sample_prior_predictive()
    posterior = pm.sample(2000, tune=2000, chains=3, nuts_kwargs={'target_accept': 0.90})

So it seems that pm.VonMises.dist(mu=mushift[id], kappa=0.0) does not work, but pm.Uniform.dist(lower=-np.pi, upper=np.pi) and pm.VonMises.dist(mu=mushift[id], kappa=0.000000001) do work. So given these options, the Uniform distribution suits my needs. But I am still confused why the VonMises one does not work given that these distributions should be identical.