# range-malformed

A bound of the time range is **not an instant in RFC 3339 with an offset**.

- **Status:** `422 Unprocessable Entity`
- **Route:** `POST /api/v1/generate-events`
- **Description:** `range is malformed: expected RFC 3339 with an offset`
- **Details:** **`bound`**, the bound to blame, `from` or `to`, and **`value`**, the bound as the request gave it.

## Why It Happens

The bound is not in RFC 3339, or it lacks the offset that says which time zone it is in, such as `2025-01-01T00:00:00` without an offset, or `2025-01-01` without a time. If both bounds are malformed, `bound` names `from`.

## How to Fix It

Write both bounds as instants in RFC 3339 with an offset, such as `2025-01-01T00:00:00Z` for UTC, or `2025-01-01T00:00:00+01:00` for an hour ahead of UTC.

## Example

For a `from` without an offset, SynthEvents answers:

```json
{
  "type": "error",
  "data": {
    "code": "https://docs.synthevents.io/errors/range-malformed",
    "description": "range is malformed: expected RFC 3339 with an offset",
    "details": {
      "bound": "from",
      "value": "2025-01-01T00:00:00"
    }
  }
}
```
