We study a form of unequal error protection that we term unequal message protection (UMP). The message set of a UMP code is a union of
disjoint message classes. Each class has its own error protection requirement, with some classes needing better error protection than others. We analyze the tradeoff between rates of message classes and the levels of error protection; our analysis reveals new tradeoffs, which were not captured by prior works on UMP codes. To obtain our results, we generalize finite block length achievability and converse bounds due to Polyanskiy–Poor–Verdú. We evaluate our bounds for the binary symmetric and binary erasure channels, and analyze the asymptotic characteristic of the bounds in the fixed error and moderate deviations regimes. In addition, we consider two questions related to the practical construction of UMP codes. First, we study a header construction that prefixes the message class into a header followed by data protection using a standard homogeneous (classical) code. We show that, in general, this construction is not optimal at finite block lengths. We further demonstrate that our main UMP achievability bound can be obtained using coset codes, which suggests a path to implementation of tractable UMP codes.