# getOperationWarnings

> Returns the validation warnings of the meters, production and operatingregime blocks, of the v2.3 historylogs categories and of aquiferanalysis references (.well v2.3) and of loggerseries events (.well v2.4). Warnings never make a file invalid. today (local calendar date) selects the active permit a

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

Returns the validation warnings of the `meters`, `production` and
`operating_regime` blocks, of the v2.3 `history_logs` categories and of
`aquifer_analysis` references (.well v2.3) and of `logger_series` events
(.well v2.4). Warnings never make a file invalid. `today` (local calendar
date) selects the active permit and the regime in force for
`regime_exceeds_permit`.

Meters:
- `meter_removed_before_installed` — `removed_at` not after `installed_at`. ids: [meter].
- `overlapping_meters` — two installation windows overlap (open = until
  infinity; touching is fine). ids: [meter, meter].
- `duplicate_meter_id` — ids: [meter id].

Production (effective entries only, except for ids and `corrects`):
- `reading_meter_unresolved` — ids: [production, meter_id].
- `reading_outside_installation` — reading before `installed_at` or after
  `removed_at` (equal is fine). ids: [production, meter].
- `reading_rollover_unknown` — r₂ < r₁ without `max_reading`. ids:
  [r₁ production, r₂ production, meter].
- `duplicate_production_id` — ids: [production id].
- `corrects_unresolved` — `corrects` points to no entry. ids: [production].
- `corrects_cycle` — the `corrects` chain loops back. ids: [production],
  once per entry in the cycle.
- `estimate_period_invalid` — an `estimated_volume` whose `period_end` is
  not after `period_start`, or an unparseable instant. ids: [production].
- `estimated_overlaps_meter` — an `estimated_volume` overlapping a meter
  interval; the meter wins. ids: [production].

Operating regime:
- `duplicate_regime_id` — ids: [regime id].
- `regime_duplicate_effective_from` — same instant. ids: every regime sharing it.
- `daily_operating_time_normalized` — a regime `daily_operating_time` above
  24, read as 24 (v2.4). ids: [regime].
- `regime_exceeds_permit` — the regime in force on `today` (latest whose
  `effective_from` local date is on or before `today`) has `flow_rate` or
  `daily_operating_time` above an `active` / `active_pending_renewal`
  permit. ids: [regime, permit].

History logs (ids: [log]):
- `log_category_field_mismatch` — maintenance fields on a non-`maintenance`
  entry, `status` on a non-`status_change`. `hydrodynamic_event_ids` and
  `sample_ids` are valid on every category.
- `log_reference_unresolved` — `pump_installation_id`, `meter_id`, or an
  id in `hydrodynamic_event_ids` / `sample_ids` that does not resolve.
- `log_after_decommission` — while the current status is `decommissioned` or
  `abandoned`, a non-`status_change` entry dated after the start of that
  closed run (the earliest closing entry not followed by a reopening one).
- `missing_maintenance_type` — a structured `maintenance` entry (with
  `pump_installation_id` or `meter_id`) without `maintenance_type`. Legacy
  maintenance entries without references are fine.
- `missing_status` — a `status_change` entry without `status`.

Aquifer analysis:
- `analysis_uses_retracted_event` — `source_event_ids` or
  `static_level_source_id` points to a retracted event. ids: [analysis, event].
- `analysis_uses_logger_series` — `source_event_ids` or
  `static_level_source_id` points to an effective `logger_series`, which is
  not a valid analysis source (v2.4). ids: [analysis, event].

Logger series (effective events only, v2.4):
- `logger_reading_below_sensor` — a reading whose `depth` is greater than
  `sensor_depth` (the level is below the sensor, so the reading is
  invalid). Once per event. ids: [event].

## Parameters

### well

`Well`

### today?

`string` = `...`

## Returns

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