Howdy!
Having issues figuring out how to get syncoid to replicate my local encrypted source_dataset inside my subdataset on the truenas remote.
SSH is working, the SSH user on remote does not have root but should nonetheless have the appropriate permissions.
The debug output seems to indicate that “cannot receive: invalid name” is the issue, but I’m not sure what that means exactly.
I suppose it might have something to do with /tmp not existing on the remote, but root (/) is read-only on Truenas so there is not much i can do about that.
I’ve also considered that there might be a typo in the remote name but I’ve double checked and also tried to remove the slash after subdataset/ (syncoid command) but then syncoid cowardly rejects me proposal with the explanation that is does not want to destroy the subdataset.
Any idea on how to move forward is appreciated.
remote user zfs permissions
zfs allow rootdataset/subdataset
---- Permissions on rootdataset/subdataset ----------------------
Local+Descendent permissions:
user user compression,create,destroy,mount,mountpoint,receive,rollback,sync
Source user zfs permissions
zfs allow root_dataset
---- Permissions on root_dataset --------------------------------------------
Local+Descendent permissions:
user user destroy,hold,mount,send,snapshot,sync
syncoid source_dataset remote_hostname:rootdataset/subdataset/ --no-privilege-elevation --debug
syncoid source_dataset remote_hostname:rootdataset/subdataset/ --no-privilege-elevation --debug
DEBUG: SSHCMD: ssh
DEBUG: checking availability of lzop on source...
DEBUG: checking availability of lzop on target...
DEBUG: checking availability of lzop on local machine...
WARN: lzop not available on target ssh:-S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname - sync will continue without compression.
DEBUG: checking availability of mbuffer on source...
DEBUG: checking availability of mbuffer on target...
DEBUG: checking availability of pv on local machine...
DEBUG: checking availability of zfs resume feature on source...
DEBUG: checking availability of zfs resume feature on target...
DEBUG: syncing source source_dataset to target rootdataset/subdataset/.
DEBUG: getting current value of syncoid:sync on source_dataset...
zfs get -H syncoid:sync 'source_dataset'
DEBUG: checking to see if rootdataset/subdataset/ on ssh -S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname is already in zfs receive using ssh -S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname ps -Ao args= ...
DEBUG: checking to see if target filesystem exists using "ssh -S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname zfs get -H name ''"'"'rootdataset/subdataset/'"'"'' 2>&1 |"...
DEBUG: getting list of snapshots on source_dataset using zfs get -Hpd 1 -t snapshot guid,creation 'source_dataset' |...
DEBUG: creating sync snapshot using " zfs snapshot 'source_dataset'@syncoid_hostname_2026-02-10:13:55:50-GMT01:00
"...
DEBUG: target rootdataset/subdataset/ does not exist. Finding oldest available snapshot on source source_dataset ...
DEBUG: getting estimated transfer size from source using " zfs send -nvP 'source_dataset@syncoid_hostname_2026-02-09:19:00:26-GMT01:00' 2>&1 |"...
DEBUG: sendsize = 71280
INFO: Sending oldest full snapshot source_dataset@syncoid_hostname_2026-02-09:19:00:26-GMT01:00 (~ 69 KB) to new target filesystem:
DEBUG: zfs send 'source_dataset'@'syncoid_hostname_2026-02-09:19:00:26-GMT01:00' | pv -p -t -e -r -b -s 71280 | mbuffer -q -s 128k -m 16M | ssh -S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname ' mbuffer -q -s 128k -m 16M | zfs receive -s -F '"'"'rootdataset/subdataset/'"'"''
DEBUG: checking to see if rootdataset/subdataset/ on ssh -S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname is already in zfs receive using ssh -S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname ps -Ao args= ...
44.2KiB 0:00:00 [5.24MiB/s] [===============================================================================================> ] 63%
cannot receive: invalid name
CRITICAL ERROR: zfs send 'source_dataset'@'syncoid_hostname_2026-02-09:19:00:26-GMT01:00' | pv -p -t -e -r -b -s 71280 | mbuffer -q -s 128k -m 16M | ssh -S /tmp/syncoid-remote_hostname-1770728150-6251 remote_hostname ' mbuffer -q -s 128k -m 16M | zfs receive -s -F '"'"'rootdataset/subdataset/'"'"'' failed: 256 at /usr/sbin/syncoid line 549.
~