[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Type](https://evolu.dev/docs/api-reference/common/Type) › ObjectError

Defined in: [packages/common/src/Type.ts:11381](https://github.com/evoluhq/evolu/blob/f0109fb501a593010e858e39248dde1200eeb2d7/packages/common/src/Type.ts#L11381)

An error returned while validating an [object](https://evolu.dev/docs/api-reference/common/Type/functions/object) and its properties.

Declare required properties as required keys and optional properties as
optional keys. Object adds its structural property errors automatically, so
each value is only the error returned by that property's Type. The interface
can be extended by recursive error declarations.

## Extends

- [`TypeError`](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeError)\<`"Object"`\>

## Properties

<a id="reason"></a>

### reason

```ts
readonly reason:
  | {
  kind: "NotObject";
  value: unknown;
}
  | {
  kind: "UnexpectedPrototype";
  value: object;
}
  | {
  errors: Partial<ObjectStructuralPropertyErrors<Errors>> & [RestError] extends [never] ? unknown : Readonly<Record<PropertyKey,
     | RestError
     | Exclude<ObjectStructuralPropertyErrors<Errors>[keyof Errors], undefined>
    | undefined>>;
  kind: "Properties";
};
```

Defined in: [packages/common/src/Type.ts:11387](https://github.com/evoluhq/evolu/blob/f0109fb501a593010e858e39248dde1200eeb2d7/packages/common/src/Type.ts#L11387)

---

<a id="type"></a>

### type

```ts
readonly type: "Object";
```

Defined in: [packages/common/src/Type.ts:870](https://github.com/evoluhq/evolu/blob/f0109fb501a593010e858e39248dde1200eeb2d7/packages/common/src/Type.ts#L870)

#### Inherited from

[`TypeError`](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeError).[`type`](https://evolu.dev/docs/api-reference/common/Type/interfaces/TypeError#type)