Some cf- headers are not coming through?

I have a worker that’s acting as a reverse proxy, however I’m having to manually copy over the CF-IPCountry header to my re-written request like so:

function modifyRequestUrl(request, newUrl) {
  // since we can't modify a Request object directly, we "clone" it but update the URL
  const { headers, method, redirect, referrer, referrerPolicy, body, cf } = request;
  const modifiedRequest = new Request(newUrl, {
  modifiedRequest.headers.set("mba-proxied", "true");
  modifiedRequest.headers.set("mba-ip-country", (cf || {}).country || "GB");
  return modifiedRequest;


When I echo out the request headers from a proxied endpoint, I get the following cf-X headers (I have redacted the values) - I also get my mba-XXX headers through - which does set the right country code for the request. But for some reason I’m not getting CF-IPCountry or some others -

    "cf-connecting-ip": "",
    "cf-ew-via": "15",
    "cf-ray": "XXXX-XXXX",
    "cf-request-id": "XXXXX",
    "cf-visitor": "{\"scheme\":\"https\"}",
    "cf-worker": "",

Is there any way to not need to copy the headers over? seems odd that some are there, but others are not…