# withdraw_proposal

Withdraw a proposal this connection filed, when the person says they do not want it after all or you filed it in error. The proposal stays readable and says it was withdrawn; nobody can agree to it afterwards. This is not a rejection: rejecting is a named person deciding against meaning they read. Refused once anybody has decided it, and refused on a proposal a different connection filed. When a result includes forThePerson, tell the person what it says in your own words, in about one line.

Reviewed 2026-10-01. Read the [current operating instructions](https://app.balladeer.ai/agent) and the [tool index](/docs/mcp-reference.md). This reference does not authorize the action.

## Parameters

```json
{
  "type": "object",
  "properties": {
    "proposalId": {
      "description": "The proposal this connection filed, from propose_promise.",
      "type": "string",
      "pattern": "^cand_[a-z0-9]{8,64}$"
    },
    "reason": {
      "description": "Why you are changing it, in the person's own words where they gave you any. It is recorded on the proposal and read by whoever decides it. Name nobody in it: Balladeer records who connected you as the person behind this act, and a name from git, a commit or a file is not the person in the conversation. Say \"the person\" or quote their words.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [
    "proposalId",
    "reason"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
```

## Effect annotations

```json
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": false
}
```
