grafana/k6 · error

page.route('%s'): iteration ended before route completed

Error message

page.route('%s'): iteration ended before route completed

What it means

Error "page.route('%s'): iteration ended before route completed" thrown in grafana/k6.

Source

Thrown at internal/js/modules/k6/browser/browser/page_mapping.go:949

	}

	return a, o
}

// mapPageRoute maps the requested page.route event to the Sobek runtime.
func mapPageRoute(vu moduleVU, p *common.Page) func(sobek.Value, sobek.Callable) (*sobek.Promise, error) {
	return func(path sobek.Value, cb sobek.Callable) (*sobek.Promise, error) {
		ctx := vu.Context()

		ppath := parseStringOrRegex(path, false)
		tq := vu.get(ctx, p.TargetID())

		route := func(r *common.Route) error {
			_, err := queueTask(ctx, tq, func() (any, error) {
				return cb(sobek.Undefined(), vu.Runtime().ToValue(mapRoute(vu, r)))
			})()
			if errors.Is(err, context.Canceled) {
				return fmt.Errorf("page.route('%s'): iteration ended before route completed", path)
			}
			if err != nil {
				return fmt.Errorf("page.route('%s'): %w", path, err)
			}
			return nil
		}

		return promise(vu, func() (any, error) {
			return nil, p.Route(ppath, route, newRegExMatcher(ctx, vu, tq))
		}), nil
	}
}

func mapWaitForURL(vu moduleVU, target interface {
	Timeout() time.Duration
	WaitForURL(urlPattern string, opts *common.FrameWaitForURLOptions, rm common.RegExMatcher) error
}, url sobek.Value, opts sobek.Value,
) (*sobek.Promise, error) {

View on GitHub (pinned to 93accf6570)

When it happens

Trigger: Thrown at internal/js/modules/k6/browser/browser/page_mapping.go:949 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/175966064f4f68ce. Report an issue: GitHub.