# getPermitWarnings

> Returns the validation warnings of the permits block defined by .well v2.3. Warnings never make a file invalid:

> **getPermitWarnings**(`well`, `today?`): [`PermitWarning`](/utils/api/type-aliases/PermitWarning)[]

Returns the validation warnings of the `permits` block defined by `.well`
v2.3. Warnings never make a file invalid:

- `valid_until_before_valid_from` — `valid_until` earlier than the start date.
- `supersedes_unresolved` / `supersedes_cycle` — broken succession chain.
- `overlapping_validity` — two granted, non-superseded permits of the same
  `type` with overlapping validity.
- `daily_operating_time_normalized` — a permit or monthly value above 24, read
  as 24 by every derivation (v2.4; renamed from
  `daily_operating_time_out_of_range`). The stored value is not rewritten.
- `monthly_above_max` — a `monthly_schedule` value above the permit maximum.
- `duplicate_month` / `duplicate_volume_period` / `duplicate_condition_id` /
  `duplicate_history_id` / `duplicate_fulfillment_id`.
- `condition_due_conflict` — a condition with both `first_due` and `due_after`.
- `invalid_duration` — a `due_after` or `recurrence` that is not a date duration.
- `missing_identifier` — neither `identifier` nor `request_identifier`.
- `granted_without_identifier` — a granted permit with no `identifier`.
- `unmatched_fulfillment` — a fulfillment whose `due_date` matches no
  generated deadline, or with no `due_date` on a dated condition.
- `missing_timezone` — the well has no `location.properties.timezone` but
  some permits have condition fulfillments (listed in `ids`). v2.4.

## Parameters

### well

`Well`

### today?

`string` = `...`

## Returns

[`PermitWarning`](/utils/api/type-aliases/PermitWarning)[]
