To have sample_posterior_predictive return a dict whose arrays keep the chain, draw shape, you need to use the keep_size argument, otherwise the chains and draws get flattened as you have already seen. It’s not because only one chain is used however, they are all used but the samples are stored as nchain*ndraw, ... arrays
2 Likes