---
title: "Fence or settle a deliberate app host binary-set switch"
method: POST
path: "/internal/app-host/binary-change"
---

# Fence or settle a deliberate app host binary-set switch

`POST /internal/app-host/binary-change`

## Request

- Base URL: `https://api.eurobase.dev`
- URL: `https://api.eurobase.dev/internal/app-host/binary-change`
- Auth: none declared

Host producer bearer scope app-host-binary-change. Begin checks live releases under the host row lock; pending source and target restrict promotion until applied or restored. No expiry. Retrying the exact id and sets is idempotent.

## Request body

- object
  - `action` 'begin' | 'applied' | 'restored', required
  - `id` string, required
  - `source` AppHostBinary[], required
    - `version` string, required
    - `maxCompatibilityDate` string, date, required
    - `sha256` string, required
  - `target` AppHostBinary[], required
    - `version` string, required
    - `maxCompatibilityDate` string, date, required
    - `sha256` string, required

## Response `200`

Exact transition fenced or settled

- object
  - `id` string, required
  - `state` 'pending' | 'applied' | 'restored', required

## Other responses

- `401`: Wrong host producer bearer or scope
- `403`: Host is not a member
- `409`: Live release incompatible, source mismatch, unresolved transition or missing boot facts
- `422`: Invalid transition or binary set
- `503`: Host producer authorization unavailable

---

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