## TL;DR

TravelPerk validates the report before it can route for approval, and one or more fields failed. Open the validation messages, fix each flagged field (dates, amounts, required attachments), and resubmit; validation must pass before any approver sees it.

## Error

```text
TravelPerk: expense report failed validation
```

## Steps

1. Open the report and read the validation messages. Expected: each failing field is named with the rule it broke.
2. Fix the fields: correct dates, attach missing receipts, fill required custom fields. Expected: the inline errors clear as you fix them.
3. Check totals: a common validation failure is line totals not matching the header total. Expected: the totals reconcile.
4. Resubmit the report. Expected: validation passes and the report routes to approval.
5. If the same field fails repeatedly, check your company's TravelPerk policy for that field's format. Expected: you enter it correctly the first time next round.

## When to use

- TravelPerk blocks a report with validation errors.
- The report has not yet reached any approver.

## When not to use

- An approver rejected the report after validation passed (address the rejection).
- The report syncs to accounting with errors (see the sync skills).

## Tool compatibility

- TravelPerk expense reporting; validation rules per company policy.

## Variant phrasings

### Report did not pass validation

Same block, alternate wording.

### Validation errors on expense report

The field-level phrasing of the same problem.

## Why it happens

TravelPerk runs validation as a gate before approval routing: required fields, receipt rules, and total reconciliation must all pass, so approvers only see complete reports.

## Provenance

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