Errors

All errors return a JSON body with an error string. The HTTP status is meaningful — your client should branch on it.

Error shape

{ "error": "human-readable reason" }

That's it. No error codes, no nested structures. The MCP wrapper translates these into isError: true content blocks with the same message; in REST you'll see them as the JSON body.

Status codes

  • 200 — success. Body shape varies by tool.
  • 400 — malformed input. Most often a required field missing or out-of-range. Body explains the specific reason.
  • 401 — missing or invalid x-mneva-key. Check that your key is set on the request and matches an active tenant.
  • 404 — referenced resource not found. Belief 12 not found, prediction 7 not found, tenant unknown. Body specifies which.
  • 5xx — unexpected. Probably temporary. Mneva's tooling does not retry automatically; your client should backoff and retry idempotent reads.

Common errors

MessageWhat it meansWhat to do
invalid or missing API keyHeader x-mneva-key is wrong or absentCheck MNEVA_KEY env. Rotate if you suspect compromise.
prediction X not foundThe id you passed never existed, or belongs to another tenantConfirm the id from predictions_open first.
prediction X is already resolvedYou resolved this prediction once alreadyPredictions resolve once; query don't re-resolve.
outcome must be one of: correct, incorrect, partialoutcome value isn't one of the threeUse one of the literal strings.
belief X is supersededYou're trying to add evidence against a belief that has been revisedFind the current belief via currentBeliefs and record evidence on that one.
kind must be 'supporting' or 'refuting'evidence(kind=...) got something elseUse the literal strings.
prediction and domain are requiredpredict() was called missing oneBoth fields are required; domain is the calibration key.

If a 5xx is reproducible, please report it — support@mneva.dev or a GitHub issue against mneva-connect.

Was this page helpful?