Model fails initialization

I’m trying to convert this model PYMC code on github but I’m having errors with initialization on PyStan.

Stan code for the model:

data {
    int<lower=1> teams; // number of different teams
    int<lower=1> matches; // number of matches
    int<lower=1> indicator_home[matches];
    int<lower=1> indicator_away[matches];
    int<lower=0> goals_home[matches];
    int<lower=0> goals_away[matches];
    real home_adv_mu;
    real<lower=0> home_adv_std;
    real intercept_mu;
    real<lower=0> intercept_std;
    vector[teams] o_mu; // prior values for offence
    vector<lower=0>[teams] o_std; // prior values for offence std
    vector[teams] d_mu;
    vector<lower=0>[teams] d_std;
    real<lower=0> delta_sigma; // random walk strength
}
parameters {
    real h; // home advantage
    real i; // league intercept
    vector[teams] o_star_init; // starting values for offence
    vector[teams] d_star_init;
    vector[teams] delta_o; // change to offence
    vector[teams] delta_d;
}
transformed parameters {
    vector[teams] o_star;
    vector[teams] d_star;
    vector[matches] lambda_h;
    vector[matches] lambda_a;
    vector[teams] o;
    vector[teams] d;
    o_star = o_star_init + delta_o;
    d_star = d_star_init + delta_d;
    o = o_star - mean(o_star);
    d = d_star - mean(d_star);
    lambda_h = exp(i + h + o[indicator_home] - d[indicator_away]);
    lambda_h = exp(i + o[indicator_away] - d[indicator_home]);
}
model {
    h ~ normal(home_adv_mu, home_adv_std);
    i ~ normal(intercept_mu, intercept_std);
    o_star_init ~ normal(o_mu, o_std);
    d_star_init ~ normal(d_mu, d_std);
    delta_o ~ normal(0, delta_sigma);
    delta_d ~ normal(0, delta_sigma);
    goals_home ~ poisson(lambda_h);
    goals_away ~ poisson(lambda_a);
}

Error specification:

---------------------------------------------------------------------------
RemoteTraceback                           Traceback (most recent call last)
RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/home/user/anaconda3/lib/python3.7/multiprocessing/pool.py", line 121, in worker
    result = (True, func(*args, **kwds))
  File "/home/user/anaconda3/lib/python3.7/multiprocessing/pool.py", line 44, in mapstar
    return list(map(*args))
  File "stanfit4anon_model_0a54c9f449e3546ae0105072cd640fa2_7260738033343356474.pyx", line 373, in stanfit4anon_model_0a54c9f449e3546ae0105072cd640fa2_7260738033343356474._call_sampler_star
  File "stanfit4anon_model_0a54c9f449e3546ae0105072cd640fa2_7260738033343356474.pyx", line 406, in stanfit4anon_model_0a54c9f449e3546ae0105072cd640fa2_7260738033343356474._call_sampler
RuntimeError: Initialization failed.
"""

The above exception was the direct cause of the following exception:

RuntimeError                              Traceback (most recent call last)
<ipython-input-247-fa30fd0e626f> in <module>
     16     "delta_sigma": 0.01
     17 }
---> 18 fit = model.sampling(data=data, iter=1000, chains=4)

~/anaconda3/lib/python3.7/site-packages/pystan/model.py in sampling(self, data, pars, chains, iter, warmup, thin, seed, init, sample_file, diagnostic_file, verbose, algorithm, control, n_jobs, **kwargs)
    811         call_sampler_args = izip(itertools.repeat(data), args_list, itertools.repeat(pars))
    812         call_sampler_star = self.module._call_sampler_star
--> 813         ret_and_samples = _map_parallel(call_sampler_star, call_sampler_args, n_jobs)
    814         samples = [smpl for _, smpl in ret_and_samples]
    815 

~/anaconda3/lib/python3.7/site-packages/pystan/model.py in _map_parallel(function, args, n_jobs)
     83         try:
     84             pool = multiprocessing.Pool(processes=n_jobs)
---> 85             map_result = pool.map(function, args)
     86         finally:
     87             pool.close()

~/anaconda3/lib/python3.7/multiprocessing/pool.py in map(self, func, iterable, chunksize)
    266         in a list that is returned.
    267         '''
--> 268         return self._map_async(func, iterable, mapstar, chunksize).get()
    269 
    270     def starmap(self, func, iterable, chunksize=None):

~/anaconda3/lib/python3.7/multiprocessing/pool.py in get(self, timeout)
    655             return self._value
    656         else:
--> 657             raise self._value
    658 
    659     def _set(self, i, obj):

RuntimeError: Initialization failed.

Code for reproducible error:

import numpy as np
data = {
    "teams": 10,
    "matches": 3,
    "indicator_home": np.asarray([1, 4, 6]),
    "indicator_away": np.asarray([2, 3, 7]),
    "goals_home": np.asarray([1, 0, 3]),
    "goals_away": np.asarray([0, 2, 5]),
    "home_adv_mu": 0,
    "home_adv_std": 0.5,
    "intercept_mu": 0,
    "intercept_std": 0.5,
    "o_mu": np.zeros(10),
    "d_mu": np.zeros(10),
    "o_std": np.ones(10),
    "d_std": np.ones(10),
    "delta_sigma": 0.01
}
fit = model.sampling(data=data, iter=1000, chains=4)