I am trying to inderstand the philosophy of the batch APIs (copy_batch, delete_batch, move_batch). I understand the general flow, but I am confused by the modality of these operations being able to complete immediately in some cases (returning a completion result on the initial call, eliminating the need to call the respective "/check" endpoint), but that they are unable to return an error under any circumstances.
So as a caller, I should expect either an immediation completion or a delayed completion (which I can then check on via the /check call), but in the case of an error, I *ONLY* get that on the /check call? I'm not understanding why the batch calls wouldn't just return the normal kinds of errors when those errors are easy to determine at the time of the command, or when they would coorespond to whatever kind of operation you would otherwise complete without batching (the kind of case where you would return results instead of a job id).