Misar Docs
MisarMailMisar.BlogMisarReachMisarPostMisar.DevMisar PlatformMisar IdentityMisar Posts API
Indexing

Errors & result shape

The EngineResult contract, request-level errors, and the fail-closed model of the Search Indexing service.

The service distinguishes request-level errors (the whole call failed) from engine-level outcomes (one engine could not run, but the call succeeded).

Request-level errors

StatusBodyCause
401{ "ok": false, "error": "unauthorized" }Missing/invalid x-indexing-service-key.
400{ "ok": false, "error": "invalid JSON body" }Body was not valid JSON.
400{ "ok": false, "error": "missing domain selector …" }No domain provided.
400{ "ok": false, "error": "no registry match for \"…\"" }domain matched nothing in the registry.

EngineResult

Every engine returns one normalized result per domain per call:

interface EngineResult {
  engine: string;     // "indexnow" | "google" | "bing" | "yandex" | "baidu" | ...
  action: string;     // "submit" | "reindex" | "remove" | "sitemap" | "onboard" | "quota"
  ok: boolean;        // false on skip / failure
  submitted: number;  // URLs accepted or planned (dryRun)
  quotaLeft?: number; // remaining quota where the engine reports it
  error?: string;     // "no credential" | "unverified" | engine message
  skipped?: boolean;  // true when not run (no credential / unsupported / dry-run)
  detail?: object;    // e.g. { "manual": "verify-ownership" }
}

Fail-closed model

One engine never breaks the batch

Engine modules never throw. A missing credential, unverified property, or network error yields ok: false with skipped: true and a human-readable error. The request still returns 200 with results for the engines that did run.

Common engine-level error values:

errorMeaningFix
no credentialThe engine's env var is unset.Configure the credential (see Authentication).
action unsupportedEngine does not support this action.See the support matrix.
auth failedGoogle service-account token mint failed.Check GOOGLE_INDEXING_SA_JSON and SA ownership of the GSC property.
recrawl rejected (check verification/quota)Yandex/Bing rejected the URL.Verify the property; check quota via /quota.
rejected (Indexing API accepts JobPosting/BroadcastEvent pages only)Google Indexing API limitation.Use the sitemap flow for ordinary pages.