> ## Documentation Index
> Fetch the complete documentation index at: https://docs.r28.ai/charter/llms.txt
> Use this file to discover all available pages before exploring further.

# issue_update

> Update an issue. Only the fields provided are changed. To close an issue, set `state_id` to a state whose type is 'completed' or 'canceled' — Linear has no separate close operation. Use `added_label_ids` and `removed_label_ids` to adjust labels; `label_ids` replaces them outright.

<div className="tool-route"><span className="tool-row-method" data-method="POST">POST</span><code>{"https://api.linear.app/graphql"}</code></div>

```python linear_issue_update.py theme={null}
from charter.packs import linear

result = await linear.issue_update.ainvoke({"variables": ...})
```

<Note>
  Posts a GraphQL document to `POST /graphql`, as every tool in this pack does.
</Note>

## Body

<div className="reference-table">
  | Field                                                             | Type                                                                              | Description                     |
  | ----------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------- |
  | `variables` <span className="required" title="required">\*</span> | [IssueUpdateVariables](/charter/charter/packs/linear/issues/objects#issueupdatevariables) | Which issue to update, and how. |
</div>
