grafana/k6 · error

unexpected event data type: %T, expected *NavigationEvent

Error message

unexpected event data type: %T, expected *NavigationEvent

What it means

Type-assertion guard in the page navigation wait: the value received on the waitForFrameNavigation channel is not a *NavigationEvent as expected, meaning an event of a different concrete type was emitted on that channel. This is an internal invariant violation rather than a user input error.

Source

Thrown at internal/js/modules/k6/browser/common/page.go:1578

		}
		p.logger.Debugf("Page:Reload", "timeoutCtx done: %v", err)

		return err
	}

	var (
		navigationEvent *NavigationEvent
		err             error
	)
	select {
	case <-p.ctx.Done():
		err = ContextErr(p.ctx)
	case <-timeoutCtx.Done():
		err = wrapTimeoutError(ContextErr(timeoutCtx))
	case event := <-waitForFrameNavigation:
		var ok bool
		if navigationEvent, ok = event.(*NavigationEvent); !ok {
			err = fmt.Errorf("unexpected event data type: %T, expected *NavigationEvent", event)
		} else if navigationEvent != nil && navigationEvent.err != nil {
			err = navigationEvent.err
		}
	}
	if err != nil {
		return nil, err
	}

	var resp *Response

	// Sometimes the new document is not yet available when the navigation event is emitted.
	newDocument := navigationEvent.newDocument
	if newDocument != nil && newDocument.request != nil {
		req := newDocument.request
		req.responseMu.RLock()
		resp = req.response
		req.responseMu.RUnlock()
	}

View on GitHub (pinned to 01ffac6f24)

Solutions

  1. Retry the navigation (waitForNavigation) — usually a one-off event-ordering anomaly
  2. Report as a k6/browser bug with a reproducing script if it recurs
  3. Avoid concurrent navigation-triggering actions on the same page
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at internal/js/modules/k6/browser/common/page.go:1578 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of grafana/k6@01ffac6f24 (2026-08-18). Data as JSON: /api/errors/d79567c6ae3d63a9. Report an issue: GitHub.