If you are running this from cron, any error message should arrive by email (unless you explicitly redirect standard error someplace). On the other hand, perhaps it would in fact make sense to capture standard output and standard error to a temporary file somewhere so you can inspect them in more or less real time.
Perhaps a good start would be to include the value of $? in the error report. If you capture standard error and standard output from the pipeline to a temporary file, include that in the email, too.
Note that the exit code from
xargs might mask the exit code from
mv
As a stylistic issue, the only command which really needs to run on the remote server is the find | xargs mv pipeline.
Code:
ssh username@server 'find source_dir -name "*.txt" | xargs -n 1000 -i {} mv {} destdir' &&
echo "Success" || mailx -s "fail" you@example.net