| M0001 | Parsing errors | 
| M0003 | Module tried to import itself | 
| M0009 | File not found for import | 
| M0010 | Imported package was not defined | 
| M0014 | Non-static expression in library or module | 
| M0029 | Unbound type | 
| M0030 | Type field does not exist in type | 
| M0031 | Shared function has non-shared parameter type | 
| M0032 | Shared function has non-shared return type | 
| M0033 | Async has non-shared content type | 
| M0036 | Invalid return type for shared query function | 
| M0038 | Misplaced await | 
| M0045 | Wrong number of type arguments | 
| M0047 | Send capability required | 
| M0050 | Literal does not have expected type | 
| M0055 | Cannot infer type of forward variable | 
| M0057 | Unbound variable | 
| M0060 | Operator is not defined for operand types | 
| M0064 | Misplaced '!' without enclosing do block | 
| M0070 | Expected object type | 
| M0072 | Field does not exist in type | 
| M0073 | Expected mutable assignment target | 
| M0082 | Expected iterable type | 
| M0088 | Expected async type | 
| M0089 | Redundant ignore | 
| M0090 | Actor reference must have an actor type | 
| M0096 | Expression can't produce expected type | 
| M0097 | Expected function type | 
| M0098 | Cannot instantiate function type | 
| M0112 | Tuple pattern cannot consume type | 
| M0116 | Variant pattern cannot consume type | 
| M0126 | Shared function cannot be private | 
| M0137 | A type or class was declared that explicitly or implicitly references an outer type parameter. | 
| M0139 | Inner actor classes are not supported | 
| M0141 | Forbidden declaration in program | 
| M0145 | Pattern does not cover value | 
| M0149 | An immutable record field (declared without var) was supplied where a mutable record field (specified withvar), was expected. | 
| M0150 | A mutable record field (declared with var) was supplied where an immutable record field (specified withoutvar) was expected. | 
| M0151 | A object literal is missing some fields. | 
| M0153 | An imported Candid file (.did) mentions types that cannot be represented in Motoko. | 
| M0154 | Deprecation annotation | 
| M0155 | Inferred type Nat for subtraction | 
| M0156 | A parameterized type definition, or set of type definitions, is too complicated for Motoko to accept. | 
| M0157 | A type definition, or set of type definitions, is ill-defined. | 
| M0158 | A public class was declared without providing it with a name. | 
| M0194 | An identifier was defined without referencing it later. | 
| M0195 | A function that demands elevated (system) capabilities was called without manifestly passing the capability. | 
| M0197 | A function that requires (system) capabilities was called in a context that does not provide them. | 
| M0198 | A field identifier was specified in an object pattern without referencing this identifier later. |