Error when creating plot from dask xarray using latest package versions

I have created a new environment, installing the latest versions of numpy, dask, datashader. However, I get an error when I try to plot a dask xarray. When I use a xarray then I don’t get any errors. Moreover, if I install instead datashader 0.16.1 then everything works without issues.

Minimal reproducible example

# create dask array
N = 1000
dask_array = da.random.random((N, N), chunks=(N/10, N/10))  # .compute()
# convert to dasked xarray
dask_xarray = xr.DataArray(
    dask_array,
    dims=["x", "y"],
    coords={"x": np.arange(N), "y": np.arange(N)},
    name="example_data",  # Name of the data variable
)
# create plot using Datashader
tf.shade(ds.Canvas(plot_height=300, plot_width=300).raster(dask_xarray))

Error message

TypingError                               Traceback (most recent call last)
Cell In[4], line 12
      5 dask_xarray = xr.DataArray(
      6     dask_array,
      7     dims=["x", "y"],
      8     coords={"x": np.arange(N), "y": np.arange(N)},
      9     name="example_data",  # Name of the data variable
     10 )
     11 # create plot using Datashader
---> 12 tf.shade(ds.Canvas(plot_height=300, plot_width=300).raster(dask_xarray))

File D:\ProgramData\environments\ds_test\lib\site-packages\datashader\core.py:1155, in Canvas.raster(self, source, layer, upsample_method, downsample_method, nan_value, agg, interpolate, chunksize, max_mem)
   1151         data = resample_2d_distributed(
   1152             source_window, chunksize=chunksize, max_mem=max_mem,
   1153             **kwargs)
   1154     else:
-> 1155         data = resample_2d(source_window, **kwargs)
   1156     layers = 1
   1157 else:

File D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py:347, in resample_2d(src, w, h, ds_method, us_method, fill_value, mode_rank, x_offset, y_offset, out)
    344 if isinstance(src, np.ma.MaskedArray):
    345     src = src.data
--> 347 resampled = _resample_2d(src, mask, use_mask, ds_method, us_method,
    348                          fill_value, mode_rank, x_offset, y_offset, out)
    349 return _mask_or_not(resampled, src, fill_value)

File D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py:499, in _resample_2d(src, mask, use_mask, ds_method, us_method, fill_value, mode_rank, x_offset, y_offset, out)
    497 def _resample_2d(src, mask, use_mask, ds_method, us_method, fill_value,
    498                  mode_rank, x_offset, y_offset, out):
--> 499     src_w, src_h, out_w, out_h = _get_dimensions(src, out)
    500     x0_off, x1_off = x_offset
    501     y0_off, y1_off = y_offset

File D:\ProgramData\environments\ds_test\lib\site-packages\numba\core\dispatcher.py:424, in _DispatcherBase._compile_for_args(self, *args, **kws)
    420         msg = (f"{str(e).rstrip()} \n\nThis error may have been caused "
    421                f"by the following argument(s):\n{args_str}\n")
    422         e.patch_message(msg)
--> 424     error_rewrite(e, 'typing')
    425 except errors.UnsupportedError as e:
    426     # Something unsupported is present in the user code, add help info
    427     error_rewrite(e, 'unsupported_error')

File D:\ProgramData\environments\ds_test\lib\site-packages\numba\core\dispatcher.py:365, in _DispatcherBase._compile_for_args.<locals>.error_rewrite(e, issue_type)
    363     raise e
    364 else:
--> 365     raise e.with_traceback(None)

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
non-precise type pyobject
During: typing of argument at D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py (488)

File "D:\ProgramData\environments\ds_test\lib\site-packages\datashader\resampling.py", line 488:
def _get_fill_value(fill_value, src, out):
    <source elided>

@ngjit
^

During: Pass nopython_type_inference 

This error may have been caused by the following argument(s):
- argument 0: Cannot determine Numba type of <class 'dask.array.core.Array'> 

This error may have been caused by the following argument(s):
- argument 0: Cannot determine Numba type of <class 'dask.array.core.Array'>

Package Versions
numpy: 2.2.6
dask: 2025.7.0
datashader: 0.18.2
numba: 0.61.2

First reported here.

It turns out this issue is because pyarrow needs to be installed. This will be addressed by the below pull request.