# TSR1001: Promise from '…' is not handled. Await it, return it, or attach '.catch'.

> A promise is dropped without await, return or a rejection handler, so a rejection would go unhandled. Await it, return it or add .catch.

## What it means

In sound and strict files an expression statement whose value is promise-like (or an array of them) must be awaited, returned or handled with `.catch(h)` or `.then(f, h)`. `.then(f)` without a rejection handler, or `.finally` alone, still floats.

## Example

```ts
// The promise is dropped; a rejection would be unhandled.
async function save(x: string): Promise<void> {
  console.log(x);
}
save("a"); // @expect TSR1001
export {};
```

## How to fix

- `await` it in an async function, or `return` it.
- Attach a rejection handler: `save(user).catch(report)` or `.then(log, report)`.
- For arrays of promises, `await Promise.all(...)`.

Sound mode is defined in [design record 0007](https://github.com/Webb-Ventures/typescript-rust/blob/main/docs/design/0007-sound-mode.md) (accepted 2026-10-15).

Source: https://ts-r.dev/errors/TSR1001/
