grafana/k6 · warning
disposing property while querying all selectors %q: %w
Error message
disposing property while querying all selectors %q: %w
What it means
In queryAll's property loop, non-element properties are disposed as cleanup; one of those Dispose calls failed (element_handle.go:1312). Like the other deferred-dispose errors, it means the target/context went away mid-operation; the operation was already failing or about to return.
Source
Thrown at internal/js/modules/k6/browser/common/element_handle.go:1312
}
type indexedElem struct {
index int
elem *ElementHandle
}
indexedElems := make([]indexedElem, 0, len(props))
for key, prop := range props {
if el := prop.AsElement(); el != nil {
// DOM elements are stored with numeric indices ("0", "1", "2", ...)
// per JavaScript's array-like object specification.
idx, err := strconv.Atoi(key)
if err != nil {
return nil, fmt.Errorf("parsing element index %q for selector %q: %w", key, selector, err)
}
indexedElems = append(indexedElems, indexedElem{index: idx, elem: el})
} else if err := prop.Dispose(); err != nil {
return nil, fmt.Errorf("disposing property while querying all selectors %q: %w", selector, err)
}
}
slices.SortFunc(indexedElems, func(a, b indexedElem) int {
return cmp.Compare(a.index, b.index)
})
els := make([]*ElementHandle, 0, len(indexedElems))
for _, ie := range indexedElems {
els = append(els, ie.elem)
}
return els, nil
}
// SetChecked checks or unchecks an element.
func (h *ElementHandle) SetChecked(checked bool, opts *ElementHandleSetCheckedOptions) error {
setChecked := func(apiCtx context.Context, handle *ElementHandle, p *Position) (any, error) {View on GitHub (pinned to 93accf6570)
Solutions
- Fix the underlying timing: wait for stable state before $$
- Don't close the browser while scrape promises are in flight
- Ignore when the target is already intentionally closed
- Keep result sets smaller (narrower selector) to shrink the dispose window
Defensive patterns
Strategy: try-catch
Try / catch
try { return await el.$$(sel); }
catch (e) { if (/disposing property while querying/.test(e.message) && targetWasClosing) return []; throw e; } Prevention
- Finish scrapes before closing the browser
- Narrow selectors to shrink the dispose window
- Stabilize navigation before bulk queries
When it happens
Trigger: Browser page/target closed or context destroyed by navigation while $$ was iterating result properties (each non-element property gets disposed immediately).
Common situations: Long result lists being disposed when k6 ends the iteration and closes the browser; navigation racing a bulk scrape.
Related errors
- disposing element handle: %w
- disposing element handles: %w
- optionHandle.dispose: %w
- disposing document element while getting owner frame: %w
- element is not attached to the DOM
AI-assisted analysis of grafana/k6@93accf6570 (2026-08-15).
Data as JSON: /api/errors/602d9bd63a713275.
Report an issue: GitHub.