Hyperbolic Gateway

Error catalogue

Errors are machine-readable where the implementation has a code. Treat the code as the contract and the message as human guidance.

Browser errors

Code Meaning Recovery
STALE_REF A mark or element reference no longer resolves. Re-run observe or find; act on a fresh mark.
TIMEOUT A condition or tool did not finish within its budget. Re-read state, raise the timeout deliberately, or wait for a narrower condition.
NO_TARGET The requested element or page target was not found. Re-scan; check the selector, role, or name.
BAD_REQUEST Arguments are missing or invalid. Fix the tool arguments; inspect the schema.
NOT_SUPPORTED The operation is not available for this page or build. Use a supported primitive or report the gap.
TYPE_NO_EFFECT Typing was attempted but the value did not change. Check focus, the field type, and whether the control accepts input. Use clear_first where appropriate.
HUMAN_IN_PROGRESS A human is using the browser; synthetic input is paused. Wait for the human to go idle, then re-observe.
NO_LLM_SURFACE A site advertises no fetchable Markdown/Text representation. Use observe(as:"markdown") or read_url with a detached render.
FETCH_BLOCKED The representation fetch was blocked or failed. Fall back to a normal rendered read and report the reason.

Other errors may be surfaced by Chromium, the bridge, or a tool-specific implementation. Always show the message and the failing tool name.

Wrapper and recipe errors

Code Meaning Recovery
WRAPPER_NOT_FOUND No saved wrapper with that id. Call wrap_list.
WRAPPER_REQUIRED wrap_test received neither id nor wrapper. Pass one.
INVALID_WRAPPER Wrapper validation failed. Fix the fields named in the error.
INVALID_ARGS The supplied arguments do not match inputSchema. Fix types, required fields, or ranges.
INVALID_REQUEST The request could not be built. Check templates and method/body compatibility.
METHOD_NOT_ALLOWED The chosen method is not in request.methods. Use an allowed method or update the wrapper.
UNRESOLVED_TEMPLATE A URL placeholder remained after interpolation. Supply the argument or fix the template.
INVALID_URL The interpolated URL is not valid. Fix the URL template.
FORBIDDEN_HEADER A wrapper tried to set a credential/transport header. Use request.auth; do not set Authorization, Cookie, etc.
SECRET_ERROR A named secret could not be resolved or used. Check the name, host binding, and credential status.
SECRETS_UNAVAILABLE The platform keyring is unavailable. Fix the OS keyring; on Linux, avoid basic_text.
AUTH_REQUIRED The upstream rejected the credential. Refresh the credential or ask a human to intervene.
HTTP_ERROR The upstream returned a non-success status. Inspect status and body; fix the request or handle the API error.
TOO_MANY_REDIRECTS The redirect cap was exceeded. Use the final URL or fix the API.
TIMEOUT The outbound request timed out. Retry deliberately; raise timeoutMs only within the cap.
NETWORK_ERROR The request could not be completed. Check connectivity and DNS.
BLOCKED_PROTOCOL The scheme is not HTTP(S). Use HTTPS; plain HTTP needs an explicit opt-in.
BLOCKED_HOST A private/local hostname is blocked. Use a public host or opt in for local development.
BLOCKED_ADDRESS The host resolves to a private or metadata address. Do not bypass unless you control the network and the risk.
DNS_LOOKUP_FAILED The host could not be resolved. Check the hostname and network.
BLOCKED_URL_CREDENTIALS The URL contains a username or password. Use a host-bound secret instead.

Bridge errors

Code Meaning Recovery
UNAUTHORIZED The /wrap/* token is missing or stale. Check HB_WRAP_TOKEN_FILE; restart the app/client if the token rotated.
WRAP_UNAVAILABLE Hyperbolic Rest is not initialised. Start the app build that includes wrappers.
BAD_REQUEST A bridge route received invalid input. Fix the JSON body or query.
NOT_FOUND Unknown route or wrapper endpoint. Check the path and HTTP method.
RECORDING_TOOLS_DISABLED Recording is disabled by the human switch. Enable recording in Settings or stop calling the tools.
HUMAN_DECISION_REQUIRED A decision or drive path requires a human choice. Resolve the human gate, then retry.
NOT_CONFIGURED A decision model is not configured. Configure one in Settings or use deterministic tools.

Handling rules

  1. Do not retry a non-retryable validation or policy error.
  2. Re-read state after STALE_REF, NO_TARGET, or a page change.
  3. Use wait_for or expect instead of sleeping and hoping.
  4. Surface UNAUTHORIZED, SECRETS_UNAVAILABLE, and AUTH_REQUIRED to the operator; they are configuration or credential problems.
  5. Treat a wrapper's ok: false as a failed call even when the HTTP round-trip to the local bridge succeeded.