agentic‑readiness docs
/
Scan at scale Blog Build one › Run a scan ›

Scan at scaleSites with a broken NLWeb /ask endpoint

Sites with a broken NLWeb /ask endpoint

A site-wide report: one row per host, over the nlweb rows the crawl emitted.

What this report returns

NLWeb's REST /ask endpoint lets agents query a site in natural language and get structured results back.

These sites' /ask responded, but an agent gets no usable result out of it, for one or more of three reasons. It answered an anonymous query with an HTTP error status, so the reply carries a refusal, a throttle or a failure rather than results. Or a streamed SSE data frame isn't valid JSON, so whatever that frame carried is lost to any agent reading the stream.

Or its v0.55 envelope doesn't hold together: a _meta.response_type outside the four defined values (answer, elicitation, promise, failure, case-sensitive), a missing _meta.version, or a member missing or malformed (an answer with no results/structuredData, a promise with no promise.token, a failure with no error.code, an elicitation question without its id/text/type), so the answer can't be parsed.

An optional member counts when it is present with the wrong shape, because optional licenses omitting it rather than breaking it. The Findings column names which of these fired, and a single response can manage more than one.

How to fix it. Emit each streamed event as one complete JSON object, and send a v0.55-defined response_type with _meta.version and members that are complete and well-formed, per the NLWeb specification (v0.55). For an error status, read the status in Findings first, because v0.55 counts 401 and 429 among the appropriate ones, so returning 200 is not the repair there: a 401 or 403 means answering anonymous queries or publishing how an agent authenticates, while a 429 means letting occasional anonymous queries through, and adding Retry-After if the response doesn't already carry one. Any other error status does mean answering with HTTP 200 and an NLWeb response body. (Missing Schema.org typing on results is shown for context only: the spec recommends it rather than requiring it, so it doesn't make the endpoint invalid.)

The columns it shows

Every defect this technology can carry is a column in the grid, worst first, so nothing is hidden behind a filter you have to know to apply.

  • Hosthost
  • NLWeb REST (/ask) ValidnlWebRestValid
  • NLWeb REST FindingsnlWebRestFindings
  • NLWeb REST (/ask) Error ResponsenlWebRestErrorResponse
  • NLWeb REST (/ask) Malformed ResponsenlWebRestMalformedResponse
  • NLWeb REST (/ask) Missing Schema.orgnlWebRestMissingSchemaOrg

About NLWeb endpoint

Microsoft's conversational /ask route returning schema.org answers.

Read how NLWeb endpoint is checked, including the specification it is validated against and a worked correct and broken example.

Running it

This report ships in the Lumar agent-readiness container and appears on any project it is linked to, on every crawl. See the whole set, or check a single URL with the scanner on this site, which runs the same code with no account.

Get Lumar pricing