Disciplines · Runbooks

Runbook — Provenance Failure

Provenance covers:

10sections5 minread

On this page

Provenance generation, signing, verification, or ledger commit failed for assets produced or curated by Oshun. Use to block publish/share, regenerate provenance bundles, verify the checksum ledger, and coordinate with the rights and compliance teams.

Scope#

Provenance covers:

  • C2PA / content-credentials manifests for generated images, video, audio, and 3D assets produced by Isis.
  • Source-binding bundles attached to grounded Sophia answers and the Veritas/Tara/Nisaba/Metis evidence rails.
  • Provenance ledger entries for Nisaba editions, manuscripts, and translations.
  • Watermark signatures (handled jointly with watermark-verification-failure.md).
  • DSAR export packages — each export carries an inner provenance manifest proving export integrity.

Failure modes:

  • Manifest generator throws or produces malformed bundles.
  • Provenance signature does not validate against the active signing key.
  • Checksum mismatch between manifest and asset.
  • Ledger commit fails or the ledger consensus rejects the entry.
  • Bound source disappeared from the source-of-truth store (orphaned provenance).
  • Cross-version drift — manifest references a version that no longer matches the asset bytes.

Severity classification#

Sev Condition
sev1 Customer-visible assets are published with invalid or missing provenance, OR ledger consensus rejects a sustained class of entries.
sev1 A signed manifest is found to be forged or signed with the wrong key.
sev2 Generator failure rate > 5% sustained; ledger commit lag > 15 min; orphaned-provenance count > 0.
sev3 Single asset rejected by the verifier; no publish/share has occurred for the affected asset.

Source events: isis.provenance.bundle_generated, isis.provenance.bundle_failed, isis.provenance.ledger_committed, isis.provenance.ledger_rejected, sophia.provenance.source_bound.

Detection signals#

  • Alerts: provenance-pipeline panels on dashboards-service-health.ts; the ledger lag and commit-rejection panels.
  • Customer signals: spike in evidence.provenance.banner_unavailable_shown, media.provenance.verification_failed_shown.
  • Operator signals: rights/compliance review queue flags a provenance defect.
  • External signals: a third-party content-credentials verifier reports an invalid manifest publicly.

Initial triage (first 15 minutes)#

  1. Acknowledge oshun-isis-oncall (and oshun-compliance-oncall for ledger issues).
  2. Block publish/share immediately for the affected asset class — enable the publish-freeze flag scoped to the class. The freeze emits studio.publish.frozen_for_provenance.
  3. Determine failure boundary:
    • Generator fault → suspect the most recent Isis workflow promotion (delegate to model-workflow-rollback.md for the workflow rollback).
    • Signing fault → suspect signing-key rotation or HSM availability.
    • Ledger fault → ledger consensus, network, or storage backend.
    • Checksum mismatch → upstream asset corruption or post-sign mutation.
  4. Page rights lead if the affected assets are subject to a third-party rights agreement; page compliance lead if a regulatory disclosure is in scope (e.g., DSAR export integrity).

Diagnosis#

  1. For generator faults: open the Isis provenance pipeline trace for a failing job — span isis.provenance.generate. The failing sub-step (manifest schema, signing call, ledger commit, asset checksum) tells you which mitigation applies.
  2. For signing faults: confirm the signing key fingerprint matches the active key in the key-management record. A rotation drift means the verifier was using a stale key — check rotation logs.
  3. For ledger faults: inspect ledger consensus health, peer connectivity, and commit-batch logs. A peer split implies a consensus partition; a single-peer fault implies an availability issue.
  4. For checksum mismatches: diff the asset bytes against the bytes recorded in the manifest. A mismatch with a recent post-sign step (e.g., transcoder pass) implicates that step.
  5. For orphaned provenance: a bound source disappeared from the source-of-truth store. Inspect the source-store deletion log; a wrongful deletion is the prime cause.

Mitigation#

  1. Block publish/share: already done in triage.
  2. Regenerate provenance bundles for the affected assets — enqueue isis.provenance.regenerate.requested for the asset cohort. The regeneration uses the certified pipeline; if the certified pipeline is the broken one, the rollback in model-workflow-rollback.md must precede regeneration.
  3. Verify checksum ledger: run the ledger reconciliation job over the affected window. The job emits isis.provenance.ledger_reconciled with the per-entry verdict (matched, mismatched, missing). Mismatched entries are quarantined and re-signed against the recovered asset bytes.
  4. Signing-key rotation recovery: if a rotation drift caused the failure, re-publish the active key fingerprint to all verifier nodes and re-verify the impacted window. Do not roll back the rotation — forward fixes only for signing keys (rotation rollback creates a non-repudiation hole).
  5. Ledger fault recovery: if the ledger backend is partitioned, coordinate with the data-platform team to restore consensus. Pending commits queue durably; publish remains frozen until commit lag is below SLO.
  6. Customer-visible degraded mode: while frozen, customer surfaces that depend on provenance render the evidence.provenance.unavailable_shown banner with a "we are verifying" copy block. Source-inspection still works against the source-of-truth store; only the cryptographic provenance attestation is hidden.

Communication cadence#

Phase Template ID Audience Cadence
Internal incident.internal.slack.investigating internal within 5 min
Identified incident.customer.status_page.identified status_page for customer-visible blocks
Partner incident.partner.email.identified partner rights/compliance if external assets
Resolved incident.customer.status_page.resolved status_page within 60 min of unblock
Postmortem incident.customer.status_page.postmortem status_page within 5 biz day

The customer-visible copy is owned by compliance; provenance failures touch disclosure and trust commitments.

Escalation#

  • Isis lead is incident commander for generator/signing/checksum failures.
  • Compliance lead is incident commander for ledger/regulator-scope failures and DSAR-export integrity failures.
  • For sev1 forged-manifest cases, page security and legal at minute 0.
  • Standard 5/5/15/30/60 escalation otherwise.

Recovery verification#

  • Provenance generator failure rate < 0.5% for 30 min.
  • Ledger commit lag below SLO for 30 min and consensus peers green.
  • Manifest verifier returns valid for a 50-asset post-regeneration sample.
  • Publish-freeze lifted; smoke-test 20 freshly-published assets through the full verification chain (manifest, signature, checksum, ledger).
  • DSAR exports issued during the freeze are reissued where their inner manifest was invalid.

Post-incident#

  • Postmortem must include: the failing pipeline step, the affected asset cohort, the manifest-regeneration record, ledger reconciliation report, signing-key history, and any third-party verifier findings.
  • Update the provenance evaluation fixtures to cover the failure mode.
  • File a rights/compliance notice for any externally-licensed asset whose provenance was customer-visible-broken; the notice route depends on the rights agreement.
  • If the ledger backend partitioned, file a data-platform reliability ticket and a ledger-DR drill on the calendar.