Inference on cummulative poisson causes `KeyError: <class 'torch.distributions.constraints._IntegerGreaterThan'>`

Hi, I am new in using Pyro.
I want to accummulate the Poisson random number and make an inference based on observation with normal distribution.
However, I got the error KeyError: <class 'torch.distributions.constraints._IntegerGreaterThan'>.
Here is my code

import pyro
import torch
from pyro.distributions import Uniform, Poisson, Normal
from pyro.infer.mcmc import MCMC
from pyro.infer.mcmc.nuts import NUTS

def example(niters, n0):
    r0 = pyro.sample("r0", Uniform(0.0, 2.0))
    ncum = n0
    ncumms = [n0] # the cummulative values
    for i in range(1,niters):
        # get the new number
        rate = ncum * r0
        nnew = pyro.sample("new_%d"%i, Poisson(rate))
        ncum = ncum + nnew
        ncum_noise = pyro.sample("cum_%d"%i, Normal(ncum, 0.01))

    return ncumms

# data
niters = 2
cumms = torch.tensor([80., 100])

n0 = cumms[0]
data = {}
for i in range(1,niters):
    # the error disappear if I change "cum_%d" to "new_%d"
    data["cum_%d"%i] = cumms[i]

conditioned_example = pyro.condition(example, data=data)
hmc_kernel = NUTS(conditioned_example, step_size=0.1)
posterior = MCMC(hmc_kernel,
                 warmup_steps=50), n0)

If I change cum_%d to new_%d in the observation data, the error disappears.
And it seems that I can run the function example many times without getting the error.
Here is the complete report on the error:

Warmup:   0%|                                                     | 0/1050 [00:00, ?it/s]Traceback (most recent call last):
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/torch/distributions/", line 140, in __call__
    factory = self._registry[type(constraint)]
KeyError: <class 'torch.distributions.constraints._IntegerGreaterThan'>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "", line 36, in <module>, n0)
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/pyro/poutine/", line 11, in _context_wrap
    return fn(*args, **kwargs)
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/pyro/infer/mcmc/", line 357, in run
    for x, chain_id in*args, **kwargs):
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/pyro/infer/mcmc/", line 168, in run
    *args, **kwargs):
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/pyro/infer/mcmc/", line 110, in _gen_samples
    kernel.setup(warmup_steps, *args, **kwargs)
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/pyro/infer/mcmc/", line 266, in setup
    self._initialize_model_properties(args, kwargs)
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/pyro/infer/mcmc/", line 239, in _initialize_model_properties
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/pyro/infer/mcmc/", line 387, in initialize_model
    transforms[name] = biject_to(node["fn"].support).inv
  File "/home/mfkasim/anaconda3/lib/python3.7/site-packages/torch/distributions/", line 143, in __call__
    'Cannot transform {} constraints'.format(type(constraint).__name__))
NotImplementedError: Cannot transform _IntegerGreaterThan constraints

@mfkasim Although Pyro HMC kernels support discrete latent variables, those latent variables should have enumerate_support, so they can be marginalized out. Poisson distribution is discrete, but it does not support enumerate (its support is unbounded).