---
title: "Verify edge coherence for a deploy operation"
method: GET
path: "/apply/v1/operations/{operation_id}/edge-coherence"
tags: ["Apply"]
---

# Verify edge coherence for a deploy operation

`GET /apply/v1/operations/{operation_id}/edge-coherence`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/apply/v1/operations/{operation_id}/edge-coherence`
- Auth: API key in header `apikey`

Probes the project's bound public hosts for mutable static paths changed by an apply or promote operation and reports whether the edge is serving the target release. Promote probes compare the previous live release with the promoted target. Uses release identity headers first, then body hash for responses up to 1 MiB, then weak size/content-type matching. Cross-project operation access returns 403.

## Path parameters

- `operation_id` string, required

## Response `200`

Edge coherence report

- EdgeCoherenceReport
  - `coherent` boolean, required
  - `operation_id` string, required
  - `project_id` string, required: Run402 project ID. Public IDs are not UUIDs.
  - `release_id` string, required
  - `release_generation` integer, nullable, required
  - `paths` EdgeCoherencePathObservation[], required
    - `path` string, required
    - `host` string, required
    - `state` 'coherent' | 'stale_prior_release' | 'unknown' | 'error', required
    - `observed_confidence` 'identity' | 'body_hash' | 'weak' | 'error', required
    - `expected_release_id` string, required
    - `expected_release_generation` integer, nullable, required
    - `observed_release_id` string, nullable
    - `observed_release_generation` integer, nullable
    - `expected_sha256` string, nullable
    - `observed_sha256` string, nullable
    - `status` integer, nullable
    - `content_type` string, nullable
    - `content_length` integer, nullable
    - `x_cache` string, nullable
    - `age_seconds` integer, nullable
    - `error` string, nullable
    - `checked_at` string, date-time: When this path was probed.
    - `verification_basis` 'release_identity' | 'content_hash' | 'weak_metadata': Weak metadata is inconclusive; identity verification may leave observed_sha256 null.
  - `pending_count` integer, required
  - `paths_truncated` boolean, required
  - `path_count` integer, required
  - `total_path_count` integer, required
  - `vantage` string, required
  - `probe_may_have_warmed_cache` boolean, required
  - `pointer_updates` EdgePointerUpdates, required: Map keyed by edge pointer target. Missing keys mean no outbox row exists for that target.
  - `next_actions` string[], required
  - `probe_basis` 'no_mutable_paths'
  - `checked_at` string, date-time
  - `verification_basis` 'no_mutable_paths'

## Other responses

- `403`: The operation exists but belongs to a different authenticated project.
- `404`: Operation not found.

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
