# uip feedback

> Syntax and options for `uip feedback send`, which files a bug report or improvement suggestion directly from the CLI.

`uip feedback` sends bug reports and improvement suggestions to the UiPath team without leaving the terminal. It has a single subcommand, `send`.

## Synopsis

```
uip feedback send --type <bug|improvement> --title <text> (--description <text> | --description-file <path> | stdin) [--priority <priority>] [--email <email>] [--attachment <paths...>] [--slack-thread <url>]
```

All `uip feedback` verbs honor the [global options](./global-options.md) (`--output`, `--output-filter`, `--log-level`, `--log-file`). Exit codes follow the [standard contract](./exit-codes.md).

## uip feedback send

File a bug report or improvement suggestion. Provide the description body through exactly one of `--description`, `--description-file`, or piped stdin.

### Options

| Flag | Description |
|---|---|
| `--type <type>` | **Required.** `bug` or `improvement`. |
| `--title <title>` | **Required.** Issue title / summary. |
| `--description <text>` | Description or steps to reproduce. Single-line safe. Mutually exclusive with `--description-file`. |
| `--description-file <path>` | Read the description from a file. Use this for large, multi-line markdown bodies — **required on Windows PowerShell**, where inlining a multi-line `--description` value gets mangled by the shell. Mutually exclusive with `--description`. |
| `--priority <priority>` | `critical`, `normal`, or `minor`. Defaults to `normal`. |
| `--email <email>` | Contact email. Defaults to the email on the active login session, if any. |
| `--attachment <paths...>` | One or more files to attach (space-separated). Maximum 10 files, 10MB each; both limits are validated before the issue is created. |
| `--slack-thread <url>` | Link to a related Slack discussion, included in the ticket. Must be a valid `http`/`https` URL. |

If none of `--description`, `--description-file`, or piped stdin supplies a body, the command fails with `ValidationError`. A description longer than roughly 32 KB is rejected client-side before anything is sent.

When stdout is a TTY, `send` shows an interactive review/edit prompt for the draft (including a chance to attach a Slack thread link) before submitting — pass all relevant flags in a CI context to avoid this prompt hanging the job (see [Scripting patterns — suppressing interactive prompts](./scripting-patterns.md#suppressing-interactive-prompts)).

### Examples

```bash
uip feedback send \
  --type bug \
  --title "Crash on login" \
  --description "Happens every time with --interactive"
```

```bash
# Large multi-line body — required approach on Windows PowerShell
uip feedback send \
  --type bug \
  --title "[RPA] Crash on run" \
  --description-file ./feedback-body.md
```

```bash
# Non-interactive CI usage
uip feedback send \
  --type improvement \
  --title "Add --dry-run to uip or jobs start" \
  --description-file ./suggestion.md \
  --priority minor \
  --email ci-bot@example.com
```

### Data shape (--output json)

```json
{
  "Code": "FeedbackSent",
  "Data": {
    "IssueKey": "UIP-12345",
    "IssueUrl": "https://uipath.atlassian.net/browse/UIP-12345",
    "Type": "bug",
    "Title": "Crash on login"
  }
}
```

When `--slack-thread` or `--attachment` was passed, the response also includes `SlackThread` and/or `AttachmentsUploaded` (formatted as `"<uploaded>/<total>"` — an attachment upload failure is non-fatal and doesn't block the issue from being filed).

## Related

- [Scripting patterns](./scripting-patterns.md) — running `uip` commands non-interactively in CI.

## See also

- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
