---
title: "Acknowledge the stranded-sheet flush hold and release it (admin)."
method: POST
path: "/v1/orgs/{orgId}/writeback/flush-hold/acknowledge"
tags: ["sheets"]
---

# Acknowledge the stranded-sheet flush hold and release it (admin).

`POST /v1/orgs/{orgId}/writeback/flush-hold/acknowledge`

## Request

- Base URL: `http://localhost:8080`
- URL: `http://localhost:8080/v1/orgs/{orgId}/writeback/flush-hold/acknowledge`
- Auth: one of:
  - API key in cookie `dvt_session`
  - HTTP bearer

DVT-5166 S2b. When the install's writeback database was switched after Snowflake
sheets were pinned to a previous database, flushing is held (see
`WritebackFlushHold`). This is the operator's explicit alternative to switching
back and restarting: "I accept those pinned sheets stay in the previous database".
It persists the acknowledgement (keyed to the current writeback database, so a
later switch re-holds), sweeps unpinned sheets onto the current database, then
releases the hold in this process without a restart. Requires `connection:manage`
(admin/owner); own-org only. Mounted only on Snowflake installs
(`editionCapabilities.spcsWritebackConnection`) — other editions 404.

`strandedSheets` is a deliberate confirmation: it must equal the current stranded
count or the call 409s and writes nothing. The 409 carries the live count as
`currentStrandedSheets`, so a client can confirm it on the next attempt.
Idempotent: when the hold is not (or no longer) in force it returns `{"held": false}` and writes nothing.

## Request body

- object
  - `strandedSheets` integer, required: The stranded-sheet count the admin is confirming: the count from readiness `flushHold.strandedSheets`, or `currentStrandedSheets` from a prior 409.

## Response `200`

The hold is not in force (released now, or it was never held).

- object
  - `held` boolean, required: Always false on a 200.
  - `strandedSheets` integer: The acknowledged count. Present only when this call released the hold.
  - `sweptSheets` integer: Unpinned sheets moved onto the current writeback database. Present only when this call released the hold.

## Other responses

- `400`: Malformed request.
- `401`: Missing, invalid, or expired session.
- `403`: The caller's role does not permit this action.
- `404`: Resource does not exist.
- `409`: The stranded-sheet count changed since the caller read it (Problem type `https://docs.dvt.dev/errors/writeback-switch-ack-stale`). Nothing was written; reload and confirm again.

---

[API](https://skmtc.dev/dvt/apis/dvt-rest-api.md) · [All operations](https://skmtc.dev/dvt/apis/dvt-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dvt/apis/dvt-rest-api/revisions/00016f504165?raw)
