Thanks, and you are basically correct on both counts:
I supported an API that had a Batch endpoint that could be “partial success” – and that was a mess.
I have been experimenting with something where you have standardized elements because the Fetch API doesn’t throw on 4XX/5XX, so having one if check, rather than two, makes sense.