If the fetch fails gracefully and there is no body, it's anyway trying to call the .json(). This always force the error to Unexpected token < in JSON at position 0 and throw away the useful data to know what is happen (for example a Forbidden status code)
In this block of code https://github.com/decentraland/builder-client/blob/main/src/client/BuilderClient.ts#L102
If the fetch fails gracefully and there is no body, it's anyway trying to call the .json(). This always force the error to
Unexpected token < in JSON at position 0
and throw away the useful data to know what is happen (for example a Forbidden status code)