In this notebook we use rioxarray.open_rasterio in the explanation, but then in the exercises, we use the standard xr.open_dataarray, and their behaviour regarding nodata is different (xr.open_dataarray uses mask_and scale=True by default).
The second exercise is about this topic, but should in the instructions also mention mask_and_scale.
And we might want to consolidate the way the dataset is opened (eg always xr.open_dataarray)