projectdiscovery/katana · error

could not get page info

Error message

could not get page info

What it means

newPageState fails when browser.Page.Info() returns an error, meaning the browser could not report the current page's URL/title (e.g. page crashed, closed, navigation in progress, or CDP call failed). The wrap annotates the underlying browser error before it propagates to getPageHash/crawlFn.

Source

Thrown at pkg/engine/headless/crawler/state.go:70

func newPageState(page *browser.BrowserPage, action *types.Action) (*types.PageState, error) {
	pageInfo, err := page.Info()
	if err != nil {
		return nil, errors.Wrap(err, "could not get page info")
	}
	if pageInfo.URL == "" || pageInfo.URL == "about:blank" {
		return nil, ErrEmptyPage
	}

	outerHTML, err := page.HTML()
	if err != nil {
		return nil, errors.Wrap(err, "could not get html content")
	}

	state := &types.PageState{
		URL:              pageInfo.URL,
		DOM:              outerHTML,
		NavigationAction: action,
		Title:            pageInfo.Title,
	}

View on GitHub (pinned to e3e742739c)

Solutions

  1. Check the wrapped cause: if the browser page was closed or crashed, recreate the page before retrying
  2. Log the underlying error to distinguish transient navigation races from a dead browser session
  3. Retry page.Info() once if the failure occurred during an in-flight navigation
  4. Skip this page state and let the crawler continue with other queued actions
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/engine/headless/crawler/state.go:70 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of projectdiscovery/katana@e3e742739c (2026-09-03). Data as JSON: /api/errors/16c4c1a3d2b8e4bf. Report an issue: GitHub.