Introduced in #10882. A bunch of possible fixes exist: * Allow `__array_interface__` to take precedence over the buffer protocol (previously it did, but only if the buffer protocol crashed) * Reimplement `as_array` to convert the ctypes pointer into a ctypes array type first. (#10970)