The parent tree traversal when the susceptibiltiyattribute is not found in the source and looked up in the parent collection is broken.
To reproduce:
import magpylib as magpy
from magpylib_material_response.demag import apply_demag
cube = magpy.magnet.Cuboid(polarization=(0, 0, 1), dimension=(0.001, 0.001, 0.001))
coll = magpy.Collection(cube)
coll.susceptibility = 0.3
apply_demag(coll)
## RecursionError: maximum recursion depth exceeded