# sqlite/rollback-async
Async twin of `sqlite/rollback` — roll back the open transaction off-thread. Returns a Future resolving to `true`.
## Syntax
[sqlite/rollback-async $db]
## Parameters
- `$db` — database handle
## Examples
def db [sqlite/open ":memory:"] [sqlite/exec $db "CREATE TABLE t (id INTEGER)"] [await [sqlite/begin-async $db]] [await [sqlite/exec-async $db "INSERT INTO t VALUES (1)"]] [await [sqlite/rollback-async $db]] # → true — the row is discarded [await [sqlite/scalar-async $db "SELECT count(*) FROM t"]] # → 0
## Returns
Future; `[await ...]` yields `true`, the same value as `sqlite/rollback`. `%Err{:message}` resolves when no transaction is active (`cannot rollback - no transaction is active`) or on other SQLite errors; submit-time errors return `%Err` directly. Jobs run FIFO on the handle's executor, preserving begin/exec/rollback order. The first async call switches the handle to async-only, so later sync `sqlite/*` calls on it return `%Err`.
## See Also
`sqlite/rollback`, `sqlite/begin-async`, `sqlite/commit-async`