Self-diagnosis

Day-16 strict-flip rejected my previously-passing request

A request that succeeded yesterday now returns 401 from /api/protect. This page tells you what changed and how to fix it.

What changed

On Day-16 (2026-05-16, gated by /registry/anomaly/flip_gate?hours=168 returning flip_recommended: true) the verifier flipped from advisory mode to strict mode for v1.8 governance-signature and v1.6 capability-attestation paths. Any failure that previously produced an advisory log entry now produces a 401 rejection at the boundary.

How to confirm this is the cause

  1. Pull the rejection's correlation_id from the 401 response body.
  2. Fetch your event: GET /registry/anomaly/my_events?correlation_id=<id> (operator-bearer auth).
  3. The event's reason_code is the same machine-readable cause it would have carried during the advisory window.

If the reason_code is one of the strict-flip-affected codes (table below), the cutover is the cause — your passport issuance has a pre-existing defect that observation-week was tolerating.

Strict-flip-affected reason_codes

Reason codeWas advisory through 2026-05-15Now strict
GOVERNANCE_SIGNATURE_INVALIDlogged401
CAPABILITY_ATTESTATION_INVALIDlogged401
DELEGATION_CHAIN_INVALIDlogged401
GOVERNANCE_TRUST_ROOT_NOT_SEPARATElogged401

Reason codes outside this list (e.g. expired passport, registry-revoked agent) were strict from Phase 1 and are not affected by the cutover.

Fix checklist

For each affected reason_code:

If your fix takes longer than acceptable

Strict-flip is one-way during a window — there is no per-operator opt-out. If you cannot remediate in time:

  1. Open a /registry/anomaly/classify entry on the rejected event with classification legitimate and a short description of the root cause + ETA. This puts your case on the team's radar.
  2. Email the team (hello@aiegis.ie) with the correlation_id so we can coordinate manual mitigation. Manual mitigation paths are case-by-case — there is no automatic suppression layer.

See also