The fact that the error is occurring with the *old* input value suggests to me that this is another manifestation of bug 1543685.
Basically this only occurs after a failure during an upgrade (which is why we've been having so much trouble coming up with a minimal reproducer). Heat will have stored the new nested template, and it proceeds to try to resolve the *old* property values against it. So while comma_delimited_list always returns a Python list, it's the old string that we're trying to validate as a list here and that's why it's failing.
As noted in that bug, there's no completely correct way to fix it until convergence. However, the fix that was merged (https://review.openstack.org/#q,I859ea72b1cc95162b6f498b6af65e4d9fdd9458f,n,z) does catch ValueError specifically, so it should also resolve this issue also. If you could test with that fix in, that would be helpful, and if it's resolved then we can close this as a duplicate.
The fact that the error is occurring with the *old* input value suggests to me that this is another manifestation of bug 1543685.
Basically this only occurs after a failure during an upgrade (which is why we've been having so much trouble coming up with a minimal reproducer). Heat will have stored the new nested template, and it proceeds to try to resolve the *old* property values against it. So while comma_delimited _list always returns a Python list, it's the old string that we're trying to validate as a list here and that's why it's failing.
As noted in that bug, there's no completely correct way to fix it until convergence. However, the fix that was merged (https:/ /review. openstack. org/#q, I859ea72b1cc951 62b6f498b6af65e 4d9fdd9458f, n,z) does catch ValueError specifically, so it should also resolve this issue also. If you could test with that fix in, that would be helpful, and if it's resolved then we can close this as a duplicate.