html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/5326#issuecomment-842806452,https://api.github.com/repos/pydata/xarray/issues/5326,842806452,MDEyOklzc3VlQ29tbWVudDg0MjgwNjQ1Mg==,2448579,2021-05-18T03:58:50Z,2021-05-18T03:58:50Z,MEMBER,"> I expected dimension order not to matter, as it is the case in most of xarray. Yeah... the `template` is special, it must exactly match what the function returns. In your case, it seems like you know the dimension order. So you can transpose the template object to that dimension order","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,893692903 https://github.com/pydata/xarray/issues/5326#issuecomment-842692873,https://api.github.com/repos/pydata/xarray/issues/5326,842692873,MDEyOklzc3VlQ29tbWVudDg0MjY5Mjg3Mw==,13301940,2021-05-17T22:51:54Z,2021-05-17T22:51:54Z,MEMBER,"> I expected dimension order not to matter, as it is the case in most of xarray. Right now, my code wraps func in a another function that performs this transpose when needed. Isn't it the case the order matters here because you are providing a template for `map_blocks` to follow? Would your code still work if you were to leave `map_blocks` to do the inference of the output dataset on its own as Deepak pointed out? From the code snippet you provided, it appears that `map_blocks` works without the template ```python In [10]: dac.map_blocks(func).load() Out[10]: (y: 3, x: 2)> array([[0, 3], [1, 4], [2, 5]]) Dimensions without coordinates: y, x ```","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,893692903 https://github.com/pydata/xarray/issues/5326#issuecomment-842671637,https://api.github.com/repos/pydata/xarray/issues/5326,842671637,MDEyOklzc3VlQ29tbWVudDg0MjY3MTYzNw==,2448579,2021-05-17T22:02:31Z,2021-05-17T22:02:31Z,MEMBER,You should be providing `template = dac.transpose()`. Does it work then? You can also not provide `template` in which case it will infer the right thing.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,893692903 https://github.com/pydata/xarray/issues/5326#issuecomment-842655926,https://api.github.com/repos/pydata/xarray/issues/5326,842655926,MDEyOklzc3VlQ29tbWVudDg0MjY1NTkyNg==,5635139,2021-05-17T21:33:10Z,2021-05-17T21:33:10Z,MEMBER,"Hi @aulemahal ! Does this work with `return d`? Could you add the stack trace?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,893692903