Holes are filled with NaN, which bool/str silently mangled and integers rejected with a conversion error. Sparse layouts now raise a clear ValueError for non-floating arrays; full layouts keep any dtype. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>