Follow up: finally figured out. The request is going to a proxy, which is not handling the content length correctly. So sending Axios Post with "body ?? {}", meaning if body is null, attach an empty object. Then within proxy, attach calculated content length only when 1) content length is greater than 0 and 2) the request body is a valid object with at least some valid key. Otherwise attach content length of 0.