That message generally indicates that the system cannot find the object your are trying to use or that you are not authorized to the object. The error message text should include the name of the object you’re trying to use.
Possible causes are that the object name is typed incorrectly, your library list does not include the library containing the object, etc.
In general you shouldn’t directly receive a MCH error such as this. Normally your software should map the MCH3401 to a more understandable CPF (or other application specific message prefix) message ID.
Calling a CL program in a RPGLE program where the name of the cl call was in single quotes ‘clxxxxx’. When changed it to uppercase ‘CLXXXX’ the MCH3401 error went away. Just an FYI.