I recommend you to check the Scheduler administration logs or Diagnostic Monitoring tool to help find the exact reason for the failure. For example, the server might be busy when the job is run by the scheduler but free otherwise when restarted manually afterward.
Also, if necessary to avoid such exceptional cases, it would be a best practice to configure the retry section of the job. In case of such failures, the scheduler will run all the queries or the failed queries again multiple times. You can configure for how long retries are performed, in the event that after one or several retries the errors persist you can choose the option of retrying until no errors.
For more details you can refer to this document below:
Hope this helps!