Datalad push --to ria-storage not working

Dear datalad experts,

I am trying to push an existing datalad dataset to a ria storage on a Linux server with ssh access. The ria storage was set up in the following way:

datalad create-sibling-ria \
--name ria-backup \
--alias myprojlx \
--new-store-ok \
"ria+ssh://username@server:/home/xxx/myriastore"

I can see that the siblings have been setup correctly, e.g.,

datalad siblings
.: here(+) [git]
.: ria-backup-storage(+) [ora]
.: ria-backup(-) [ssh://username@server/home/xxx/myriastore/601/88114-dec7-4a5d-b7fa-e1e615d9b2ad (git)]

Publishing to the ria-backup works fine, i.e., > datalad publish --to ria-backup.

However, when I try to push, I get the following error message:


datalad push --to ria-backup
Push to 'ria-backup':  25%|█████████████████████████████████████████████▊                                                                                                                                         | 1.00/4.00 [00:00<00:00, 6.21k Steps/sCommandError: 'git -c diff.ignoreSubmodules=none -c core.quotepath=false annex copy --batch -z --to ria-backup-storage --fast --json --json-error-messages --json-progress -c annex.dotfiles=true' failed with exitcode 1 under /Users/username/Data/DataLad/myproj [info keys: stdout_json]
> to ria-backup-storage...
Unable to remove /home/username/myriastore/601/88114-dec7-4a5d-b7fa-e1e615d9b2ad/ora-remote-60fe92d2-cf77-46b2-93e6-83ef74e14dd9/transfer/MD5E-s38598--22dfd1f486b6ad91c43713f6f783c7a9.svg.png or to obtain write permission in parent directory. -caused by- stat -f%Dp /home/username/myriastore/601/88114-dec7-4a5d-b7fa-e1e615d9b2ad/ora-remote-60fe92d2-cf77-46b2-93e6-83ef74e14dd9/transfer failed:
This could have failed because --fast is enabled.
copy: 1 failed

It seems to be related to permissions but I do have ssh access on both machines. Any ideas what the problem could be?

Many thanks!

The error message suggests that you encountered a bug in DataLad related to pushing from MacOS to Linux (stat command called on the Linux machine being parameterized in a MacOS-specific way).

A fix, together with a set of other improvements to to the RIA functionality of DataLad, has been released in the DataLad-next extension, in v.1.4.1 (changelog).

DataLad-next is a separate Python package (DataLad extension), and can be installed e.g. with pip. Installing the latest version of DataLad-next, and enabling it to patch DataLad functionality (git config --global --add datalad.extensions.load next – see DataLad-next docs), should resolve your issue.


I realize that my answer to this question comes way too late, but I wanted to leave a note that there now is a solution to the described problem.

FTR, a fix to this particular issue has also been proposed (by myself) to the “core” DataLad, but I can not say if and when it will be merged - see PR and related issue. At least for now, the solution is provided by DataLad-next.