Docs / Reference

Unavailable capability

Return skipped or denied with capability_disabled when the host knows a capability but lifecycle state prevents invocation.

Plain English

This failure mode should return a structured protocol record with capability_disabled, not an ambiguous framework or transport failure.

Why it exists

Independent callers need to branch on predictable protocol outcomes when a capability cannot safely execute.

Formal definition

A failure mode is a first-class protocol outcome with a stable denial.code or error.code, message, optional details, and evidence semantics.

Concrete example

Ground the concept before the schema.

schedule_technician exists in the HostDescriptor, but host lifecycle metadata marks the executor unavailable.

unavailable-capability.outcome.json
json
{  "invocation_id": "inv_unavailable_001",  "capability_id": "schedule_technician",  "capability_version": "1.0.0",  "correlation": { "correlation_id": "case-unavailable" },  "outcome": "skipped",  "success": false,  "data": null,  "error": null,  "denial": {    "code": "capability_disabled",    "message": "Capability schedule_technician is not currently invokable.",    "retryable": true,    "details": {      "capability_id": "schedule_technician",      "lifecycle": "unavailable"    }  },  "evidence_ids": ["evt_unavailable_skipped"],  "started_at": null,  "completed_at": "2026-06-16T15:14:22.104Z"}

Developer reference

Unavailable capability outcome contract

Use this as the minimum machine-readable shape for tests and independent callers.

FieldValueMeaning
triggercondition

schedule_technician exists in the HostDescriptor, but host lifecycle metadata marks the executor unavailable.

denial.code or error.codecapability_disabled

Capability schedule_technician is not currently invokable.

event_typeexecution_skipped

Evidence type or absence expected for this failure.

Relationships

Where this sits in the protocol.

Each concept should explain its neighbors so implementation teams can preserve the boundary across manifests, invocation, evidence, and tests.

Failure outcomes are produced during discovery, validation, authorization, lifecycle checks, execution, or timeout handling.

Evidence should record the decision path when an invocation reaches the host boundary.

Conformance should include both this failure and the neighboring happy path.

Visual model

  1. 01Caller sends or discovers a protocol surface.
  2. 02Host or infrastructure detects the failure condition.
  3. 03Caller receives capability_disabled with structured details.

Implementation notes

  • Return a stable code that callers can match programmatically.
  • Include a human-readable message without depending on it for control flow.
  • Attach evidence when the host boundary received and evaluated the request.

Common mistakes

  • Throwing a raw exception instead of a protocol outcome.
  • Using different codes for the same failure across hosts.
  • Omitting evidence for denied or rejected requests that reached policy or lifecycle checks.

Related concepts

Keep reading through the boundary.