It is on the OSI model, but it is not the context I am talking about. Think about an application you build. You just happen to interface over it with HTTP, but you don't have to. You could interface with it using FTP or some other protocol. The suggestion I am making is we shouldn't use esoteric protocol-level error messages but stick to basic ones and instead pass any specific status codes as payload data.