Outcome
Remove a discovered threshold while preserving uncertainty about prior claims and notifications.
DELETE /api/forms/{formId}/thresholds/{thresholdId}
Before you start
Use the original authorized organization and discovered canonical Forms workspace. Bind that workspace separately from action input, then discover the actual form and threshold as needed. Neither a sample id nor an input workspaceId is a grant.
Technical guide publication does not make actual form/threshold/creator data public. All responses below are complete source-derived synthetic examples, unrun; no real form/subject/threshold read, configuration change, submission, notification, provider/model or delivery operation was executed.
A live mutation needs approval for its real target and effects, current input validation and a confirmed executable plan. Read operations retain original scope without mutation confirmation. Shared auth/runtime/protection failures require their actual request evidence; never bypass them by changing identity, access or environment policy.
Request and behavior
Action: app_topolo_forms.response_thresholds.delete.
Requires a separately approved mutation, workspace:write and verified read_write workspace access. Discover the actual threshold id through response_thresholds.list for the intended form, keeping the same original organization/workspace.
The selected DELETE matches id,form_id,organization_id,workspace_id together and returns200 {ok:true} only when exactly one row was deleted. Otherwise it returns404 {error:not_found}. Unlike threshold list/create, this selected branch does not first load/decrypt the form.
The success body contains neither thresholdId nor form/workspace ids. Generic metadata’s $.thresholdId locator is not present in this body; retain the reviewed input and discovery evidence. A 404 alone does not prove a previous uncertain deletion succeeded.
Removing the configuration does not undo submissions, form content, prior claim markers, an in-flight processor that already claimed a row, or emitted/delivered notifications. It prevents later queries from finding the deleted configuration; no universal notification cancellation is established.
Re-creating a threshold at the same count is a new mutation with a new UUID and marker0. It does not restore the prior identity/history/creator/timestamps and can make a threshold eligible again on a later submission. Do not automatically recreate it as an exact rollback.
Complete worked responses
Reviewed threshold removed
Complete source-derived synthetic, unrun HTTP200. Assumes original workspace/write checks pass and the exact scoped DELETE affects one fictional row. No real deletion or notification cancellation was performed.
Input:
{
"formId": "forms_docs_fixture",
"thresholdId": "formthreshold_00000000-0000-4000-8000-000000000001"
}
Response:
{
"ok": true
}
Preserve actual original target/context and follow the verification/recovery steps; this fixture authorizes no operation.
No row matched
Complete source-derived synthetic, unrun HTTP404. Assumes the scoped DELETE affects zero rows. The response does not distinguish an absent id from a different form/context or prove the outcome of an earlier lost response.
Input:
{
"formId": "forms_docs_fixture",
"thresholdId": "formthreshold_absent_docs_fixture"
}
Response:
{
"error": "not_found"
}
Preserve actual original target/context and follow the verification/recovery steps; this fixture authorizes no operation.
Verify and recover
-
Read response_thresholds.list for the same original form/workspace and verify the reviewed id is absent. Preserve the actual mutation response plus original input because success itself contains no target ids.
-
If a deletion response was lost, reconcile current threshold state and request evidence before any repeat. An absent row alone does not determine who deleted it or recall prior/in-flight notification effects.
If explicitly required and approved, plan a new threshold at the reviewed previous count, acknowledging the new UUID/creator/timestamps and reset claim marker. Verify the new configuration; it is not an exact rollback and may become eligible again. Do not replay or send a real submission to force a notification.
Refusals
400 / workspace_required: Resolve the canonical workspace through supported Auth resource/workspace discovery and bind it separately. The app bootstrap response is not a workspace catalogue.
403 / forbidden: Preserve the actual route permission refusal in its original context; use the owner for legitimate access.
404 / not_found: Reconcile the actual discovered form/threshold in the same workspace; do not guess another tenant’s ids.
The current output is a broad catalog-derived structural schema. Schema acceptance alone does not identify the actual success carrier or prove that a mutation or notification completed. Preserve concrete status, body and request evidence.
Related actions
Change log
- 2026-10-21: Added original workspace/permission boundaries, exact threshold carrier and claim semantics, complete illustrative responses, uncertainty reconciliation and limits of compensation. All examples are synthetic and unrun.