Skip to content

Traffic: [Status 101] - The status provided (101) is outside the range [200, 599]Β #54

@JeanDamien

Description

@JeanDamien

Description

If the user uses a .har file that contained a websocket entry , this package will throw an exception:

Uncaught (in promise) RangeError: Failed to construct 'Response': The status provided (101) is outside the range [200, 599].
    at toResponse (@mswjs_source_traffic.js)
    at fromTraffic (@mswjs_source_traffic.js)

https://github.com/mswjs/source/blob/main/src/traffic/utils/har-utils.ts#L40

Reproduction steps

  • Go to a site that open a websocket (your dev env might be enough if it has a fast-refresh)

  • Open your network and look for a WS resource (like ws://localhost:3006/ GET 101 Switching Protocols)
    image

  • Export the logs as HAR file

  • Try to generate the request handlers following the instructions

HAR file

test/traffic/fixtures/archives/entry-with-ws.har

Test template

  it(
    'does not throw an exception given an HAR file with a websocket entry',
    () => {
      const traffic = readArchive(
        'test/traffic/fixtures/archives/entry-with-ws.har',
      )
      expect(() => fromTraffic(traffic)).not.toThrow()
    },
  )

Expected behavior

It would be ideal if the library didn't throw an exception, or if we could add an entry in the documentation advising users to filter those entries in HAR before using it.

Workaround

fromTraffic(traffic, (entry) => {
  if (entry._resourceType === 'websocket') {
    return
  }
  return entry
})

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions