grafana/k6 · error

WebSocket requires a url

Error message

WebSocket requires a url

What it means

Error "WebSocket requires a url" thrown in grafana/k6.

Source

Thrown at internal/js/modules/k6/websockets/websockets.go:163

		writeQueueCh:    make(chan message),
		eventListeners:  newEventListeners(),
		obj:             rt.NewObject(),
		tagsAndMeta:     params.tagsAndMeta,
		sendPings:       ping{timestamps: make(map[string]time.Time)},
		binaryType:      blobBinaryType,
	}

	// Maybe have this after the goroutine below ?!?
	defineWebsocket(rt, w)

	go w.establishConnection(params)
	return w.obj
}

// parseURL parses the url from the first constructor calls argument or returns an error
func parseURL(urlValue sobek.Value) (*url.URL, error) {
	if common.IsNullish(urlValue) {
		return nil, errors.New("WebSocket requires a url")
	}

	// TODO: throw the SyntaxError (https://websockets.spec.whatwg.org/#dom-websocket-websocket)
	urlString := urlValue.String()
	url, err := url.Parse(urlString)
	if err != nil {
		return nil, fmt.Errorf("WebSocket requires valid url, but got %q which resulted in %w", urlString, err)
	}
	if url.Scheme != "ws" && url.Scheme != "wss" {
		return nil, fmt.Errorf("WebSocket requires url with scheme ws or wss, but got %q", url.Scheme)
	}
	if url.Fragment != "" {
		return nil, fmt.Errorf("WebSocket requires no url fragment, but got %q", url.Fragment)
	}

	return url, nil
}

View on GitHub (pinned to 93accf6570)

When it happens

Trigger: Thrown at internal/js/modules/k6/websockets/websockets.go:163 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of grafana/k6@93accf6570 (2026-08-15). Data as JSON: /api/errors/83e5ca327c363cfa. Report an issue: GitHub.