J Jarvisprotocol errors v0.1.0

Protocol errors

Every rejection returns a public protocol error.

Compatible implementations reject invalid protocol operations with stable error ids and a portable error envelope. Error responses exclude host-private fields, credentials, secrets, raw runtime state, auth tokens, session cookies, provider secrets, and private keys.

Open failure modes

Error envelope

{
  "error_id": "missing_policy_decision",
  "protocol_version": "v0.1",
  "object_type": "PolicyDecision",
  "field": "policy_decision_id",
  "reason": "AgentWorker action requires PolicyDecision before accepted protocol state.",
  "remediation": "Record PolicyDecision before accepting the AgentWorker action.",
  "trace_id": "trace:example"
}

Required rejection surfaces

missing_protocol_version unsupported_protocol_version missing_actor missing_idempotency_key missing_request_timestamp stale_request_timestamp missing_expected_work_session_revision missing_previous_event_hash invalid_previous_event_hash missing_policy_decision missing_review_resolution missing_takeover_resolution stale_takeover_continuation forbidden_host_private_field sealed_work_session_mutation sealed_evidence_mutation outcome_report_without_learning_record outcome_report_requires_terminal_source

Must validate and reject

  • Return the required public envelope fields: error_id, protocol_version, object_type, field, reason, remediation, and trace_id.
  • Do not include host-private response fields.
  • Use fixture-backed rejection ids when a fixture proves the behavior.
  • Use checklist-only rejection ids without claiming fixture coverage.

Host boundary

Hosts own UI, auth, storage, runtime behavior, model routing, tool execution, billing, scoring, payment, deployment, monitoring, and host workflow.

Jarvis owns public protocol errors and rejection semantics.