The real reason was a boring one and seemingly unrelated to that file. I just ran out of disk space. Still though, that’s not exactly a helpful error is it
What does it matter what came before or after the offending command? Clearly, /usr/bin/ar says it’s unable to copy a file because of Success, which is a bullshit error message whithin or without [Edit: a pipe&&].
In C/C++, it's very common for a function to return an integer corresponding to any errors that occured within the function, including a "success" error code, because it has to return something, otherwise it's undefined.
I'm not sure that's what happened here but that's why "successful" errors are a thing. Somewhere it got misinterpreted maybe.
Lists
A list is a sequence of one or more pipelines separated by one of the operators ;, &, &&, or ||, and optionally terminated by one of ;, &, or <newline>.
Of these list operators, && and || have equal precedence, followed by ; and &, which have equal precedence.
A sequence of one or more newlines may appear in a list instead of a semicolon to delimit commands.
....
AND and OR lists are sequences of one or more pipelines separated by the && and || control operators, respectively. AND and OR lists are executed with left associativity. An AND list has the form
command1 && command2
**command2 is executed if, and only if, command1 returns an exit status of zero (success).**
So, command 1 returns success, but command 2 fails. The FAILED comment at the beginning of the error message is the message to parse, one part succeeded, the other failed.
Not using && and running your command by line will show where the error is.
Funny tangent. I remember windows HRESULTS containing E_SUCCESS (error success) and something along the lines of S_FAILURE (success failure) I'm a little fuzzy on that second one though, so someone else can correct me if I have the wrong name for it.