# `VerifiedPubSub.ManifestMismatchError`
[🔗](https://github.com/CuriousCurmudgeon/verified_pubsub/blob/v0.1.0/lib/verified_pubsub/manifest_mismatch_error.ex#L1)

The error for a message that a subscriber receives from a different manifest.

The compiler did not verify such a message against the manifest of the subscriber. Only
the names of its topic and event match, and its payload follows the field declarations
of the *sender*. A dispatch would give a handler a payload shape that the compiler did
not check: the one thing that this library exists to prevent.

Two manifests can produce the same wire topic when they share a `:pubsub` and declare
topics that overlap. A manifest checks that its topics are disjoint only *within*
itself, because it cannot see the other manifests at compile time.

# `t`

```elixir
@type t() :: %VerifiedPubSub.ManifestMismatchError{
  __exception__: term(),
  event: atom(),
  expected: module(),
  got: module(),
  params: map(),
  subscriber: module(),
  topic: atom()
}
```

The fields of the error:

  * `subscriber`: the subscriber that receives the message.
  * `expected`: the manifest that the subscriber is bound to.
  * `got`: the manifest that declares the message.
  * `topic`: the name of the topic of the message.
  * `event`: the event of the message.
  * `params`: the params of the message.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
