# CAIN-42 known limitations

**Source commit:** `4b16f6b0cd73000afb7088ac0b7d17436cffa1c3` · **Published:** 2026-10-09

This file lists what this evidence package does **not** establish. It is part of the
deliverable, not fine print.

## Independence

- **No claim here is independently reproduced or audited.** Every artefact is
  `OPERATOR_GENERATED`. Independent verification count: **0**.
- The operator wrote the code, ran the tests, produced the evidence, and hosts it.
  A self-published key proves only that the holder of the private key signed the bytes.

## Consensus and deployment

- `cain-mr-01` is **4 replicas on 3 hosts across 3 regions**, not 4 servers / 4
  regions. `cain-mr-node-2` and `cain-mr-node-3` share one host (`vultr-lax-1`).
- Both clusters run on **one provider (Vultr)**, under **one operator and one control
  plane**. A single-provider, single-operator failure can exceed the f=1 fault budget.
- At the 2026-10-09T16:10Z check, `cain-mr-01` reported `agreement.same_height=false`,
  `node-2` quarantined, and the latest hourly proof verdict **NOT_OPERATIONAL**
  ("write not committed: Primary unreachable; view-change initiated").
- Public host IPs are redacted, so geographic placement cannot be independently verified.
- Signatures prove that named keys signed named bytes. They do **not** prove distributed
  consensus, physical separation, or infrastructure independence.
- Live quorum-certificate retrieval (`/api/v1/live-cluster/qc/{seq}`) timed out during
  the 2026-10-09 check; only the historical offline bundle is reproducible.
- Key **rotation and revocation** procedures are not published (**NOT_ESTABLISHED**).

## Formal methods

- The **7.3M figure is 7,305,092 distinct states summed across five bounded TLC
  configurations**, not one model.
- These are **abstract, bounded models**. There is **no proved refinement** between the
  models and the Python implementation. The deployed platform must **not** be called
  "formally verified" on the strength of these checks.
- Liveness is not checked; only safety invariants. Symmetry reduction is not used.

## Tests

- The **1,978-test report is operator-run, not independent CI**. Commit
  `068b79839a752c633b75dc2a3fe3411fce6724c4`, 2026-09-28.
- It is **not fully reproducible publicly**: the manifest itself says the suites need the
  repository, and **no public git remote exists** (operator directive). A reviewer can read
  the manifest and JUnit XML but cannot re-run the suite without source access.
- The report covers **six named suites**, a subset of the repository's tests.
- The operator's own 2026-10-02 audit could not reproduce the full run.

## Reliability / soak

- The **72-hour soak has not passed**. At 2026-10-09T16:11Z it was **RUNNING**, 34.1h of
  72h, 0 divergences, 0 anomalies.
- The evidence directory `soak-multiregion-2026-10-06` contains a segment that actually
  started **2026-10-08T06:06:05Z**. An earlier segment started 2026-10-06T01:36:59Z; its
  published checkpoints were overwritten. See `changelog.json`.
- Preceding soaks failed or were stopped by the operator (2026-09-26 failure; three
  2026-09-29 stops). Those runs are retained in the source tree, not all republished here.
- Faults are injected by the operator's own harness (kill a replica for 60s); they are
  real process kills on the operator's hosts, not third-party fault injection.

## Enforcement boundary

- The boundary is **opt-in**. A tool call that bypasses MCPGate is not governed. This is
  stated by CAIN itself.
- The ten bypass-resistance demonstrations (allowed succeeds, denied does not reach the
  tool, changed parameters rejected, direct access blocked, replay rejected, revoked
  authority rejected, cross-tenant rejected, delegation cannot widen, restart preserves
  replay protection, dependency-failure behaviour) are **NOT_ESTABLISHED** in this package:
  no public, side-effect-showing reproduction exists. Running them requires explicit
  operator approval and will not be done against production or customers.

## Performance

- `~2,269 ms` fresh consensus and `~0.83 ms` snapshot authorization are **operator
  measurements with different boundaries**. They must not be compared as interchangeable.
- **No public benchmark code, hardware spec, concurrency, sample count or percentiles**
  accompany them. Published benchmarks are marked "incomplete conditions" by the
  operator's own performance index.
- "sub-15ms" and "below 2ms" could not be tied to a defined public measurement boundary
  (**NOT_ESTABLISHED**).

## Commercial status

- **No independently verified customers or revenue.** A founder attestation of 2 customers
  / $97 is recorded; no processor record or customer reference is published.
- **No patent has been filed or granted.** Invention-atlas counts are breadth counts, not
  a valuation.
- **No certification** (SOC 2, ISO 27001, ISO 42001). The operator states no auditor has
  examined the platform.
- **No incorporation record**, so "corporation" is not an accurate label.
- TEE / hardware attestation of CAIN's own servers is **not implemented / NOT_ESTABLISHED**.

## What is genuinely reproducible today

- The PBFT quorum-certificate sample bundle and its offline verifier (**29/29 checks**).
- The two TLA+ models and the raw TLC results (with the TLC tool).
- The hourly-proof chain and the soak checkpoints (signature + hash-chain verification).
- Read-only public status endpoints (`/fabric/status`, `/api/v1/live-cluster/*`).
