# What changed in @connectrpc/connect

> 20 changes in @connectrpc/connect 2 from its official release notes, upgrade guides and advisories: 15 breaking, 2 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/@connectrpc/connect/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @connectrpc/connect 2

### Breaking changes

- Bare errors are no longer serialized to the wire. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Headers and trailers are reached through a `CallInfo` via context APIs. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Metadata moves to context; headers and trailers are reached through a `CallInfo` via this API. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- A function type replaces the three-method `Interceptor` interface and works for unary and streaming RPCs. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Metadata moves to context; headers and trailers are reached through a `CallInfo` via this API. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Servers register with `connect.NewServer` and are mounted with `connecthttp.Mount`. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- The wrapper is gone; unary handlers and clients use plain Protobuf messages. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- The wrapper is gone; unary handlers and clients use plain Protobuf messages. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- A function type replaces the three-method `Interceptor` interface and works for unary and streaming RPCs. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Servers are mounted with `connecthttp.Mount`. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Creates the transport that clients wrap. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- The three-method interface is replaced by client and server interceptor function types. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Generated code no longer depends on `net/http`. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- The generator's `simple` flag has been removed. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- Simple signatures are now the default: unary handlers and clients use plain Protobuf messages. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)

### New APIs and options

- Clients wrap a `connect.Transport` created by `connecthttp.NewTransport`. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
- An in-process transport enables testing without listeners or loopback HTTP. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)

### Behavior and default changes

- Errors received from clients are marked remote. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)

### Tooling

- The migration tool automatically applies many mechanical changes; without `-w`, it runs a dry run and prints diffs. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)

### Fixes and other changes

- `connect.NewError` takes a message string. (2.0.0) — [upgrade guide](https://connectrpc.com/docs/go/migrating-to-v2)
