Skip to content

Cannot read properties of undefined (reading 'transferSize') #17

@bruceharrison1984

Description

@bruceharrison1984

I was trying to incorporate this into a small CLI project(not within a browser), but every request appears to fail, but they are actually succeeding in the background, the error message just isn't very good.

I chased it down to this line:

const perf = performance.getEntriesByName(url).slice(-1)[0]; // get latest perf timing

For my testing, I simply tried to log the matching entries via:

    var perf = performance.getEntriesByName(url).slice(-1)[0]; // get latest perf timing
    console.log(perf);  // <---- This is always undefined

Closer inspection revealed that the name property of PerformanceResourceTiming being set to a URL object instead of a string. I'm unfamiliar with the Performance API, but the spec seems to state that the name property would be a string rather than an object, but it's not immediately clear to me if that is correct.

https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/name

The following is just a dump of the PerformanceResourceTiming itself, if I dont use getEntriesByName. You can see the entries exist, but they are not being matched via URL for some reason.

Error fetching https://speed.cloudflare.com/__down?bytes=0: TypeError: Cannot read properties of undefined (reading 'transferSize')

// console.log(performance.getEntries().slice(-1)[0]);

PerformanceResourceTiming {
  name: URL {
    href: 'https://speed.cloudflare.com/__down?bytes=0',
    origin: 'https://speed.cloudflare.com',
    protocol: 'https:',
    username: '',
    password: '',
    host: 'speed.cloudflare.com',
    hostname: 'speed.cloudflare.com',
    port: '',
    pathname: '/__down',
    search: '?bytes=0',
    searchParams: URLSearchParams { 'bytes' => '0' },
    hash: ''
  },
  entryType: 'resource',
  startTime: 3013.801200002432,
  duration: -3013.801200002432,
  initiatorType: 'fetch',
  nextHopProtocol: undefined,
  workerStart: 0,
  redirectStart: 0,
  redirectEnd: 0,
  fetchStart: 3013.801200002432,
  domainLookupStart: undefined,
  domainLookupEnd: undefined,
  connectStart: undefined,
  connectEnd: undefined,
  secureConnectionStart: undefined,
  requestStart: 0,
  responseStart: 0,
  responseEnd: 0,
  transferSize: 300,
  encodedBodySize: 0,
  decodedBodySize: 0
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions