There may be several different cause for this issue. But in our case, the below steps fixed the issue.
1) Download apex_verify.sql from metalink and that script will generate an html file. Open it and check for the below information.
a) ANONYMOUS account status and all the apex related user account status. If any users are LOCKED, please UNLOCK it.
b) INVALIDS of apex objects. If found, compile it by executing utlrp.sql
c) If not able to guess the problem, upload it to oracle SR.
2) In our case, we found that the apex was using a non-default image prefix after database restoration. This is not possible or not allowed and it must be /i/, if we are using EPG.
3) Hence, we should run the reset_image_prefix.sql script in our $ORACLE_HOME/apex/utilities and reset the images alias back to /i/.
4) If our database is upgraded we must run the apex_epg_config.sql (This point is only applicable, if we have upgraded our database).