[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [local‑first/Protocol](https://evolu.dev/docs/api-reference/common/local-first/Protocol) › ProtocolErrorCode

```ts
type ProtocolErrorCode =
  (typeof ProtocolErrorCode)[keyof typeof ProtocolErrorCode];
```

Defined in: [packages/common/src/local-first/Protocol.ts:462](https://github.com/evoluhq/evolu/blob/113517df8a8da4e4eed41363077878e657b22fca/packages/common/src/local-first/Protocol.ts#L462)

The error code in the header of a Response.

A client reports a code it does not know as [ProtocolInvalidDataError](https://evolu.dev/docs/api-reference/common/local-first/Protocol/interfaces/ProtocolInvalidDataError),
which carries no `OwnerId`, and that relay's round for the owner ends. Every
released client does this, so a relay can add a code under the same
[protocolVersion](https://evolu.dev/docs/api-reference/common/local-first/Protocol/variables/protocolVersion) only where that outcome is acceptable.