## TL;DR

The report cannot route because the approver field is empty, so the system retries routing and the report appears to loop. Fill in the approver on your expense profile (or have the admin set a policy default), then resubmit the report once.

## Error

```text
expense report approval loop: approver field empty
```

## Steps

1. Open your expense profile settings and find the approver field. Expected: it is blank.
2. Enter your direct manager as approver, or ask your expense admin to set a default approver for your policy or department. Expected: the field now holds a valid approver.
3. Open the looping report and resubmit it a single time. Expected: it routes to the approver instead of looping.
4. If the report already has multiple stuck copies from repeated submits, withdraw the duplicates. Expected: exactly one active report remains.
5. Ask the admin to make the approver field required on the profile so it cannot be left blank again. Expected: new users cannot hit the same loop.

## When to use

- A report errors or loops with the approver field empty.
- Resubmitting the same report multiple times made things worse.

## When not to use

- The approver is set but the report loops anyway (check circular delegation).
- The report is stuck with an approver who will not act (see the stuck-approval skill).

## Tool compatibility

- Expensify, Concur, and similar tools with per-user approver fields.

## Variant phrasings

### Approver is required to submit

The validation wording of the same gap.

### Report routing failed: no approver

The system-log phrasing of the same problem.

## Why it happens

Approval routing needs a destination. With the field empty, the router has nowhere to send the report; some systems retry instead of failing cleanly, which looks like a loop.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_3pn3q8Yu_paIX63GyNCJ4A
