Oracle Materialized View Fast Refresh Error

Error report -
ORA-12008: error in materialized view refresh path
ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2821
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 3058
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 3017
ORA-06512: at line 2
12008. 00000 -  "error in materialized view refresh path"
*Cause:    Table SNAP$_ reads rows from the view
           MVIEW$_, which is a view on the master table
           (the master may be at a remote site).  Any
           error in this path will cause this error at refresh time.
           For fast refreshes, the table .MLOG$_
           is also referenced.
*Action:   Examine the other messages on the stack to find the problem.
           See if the objects SNAP$_, MVIEW$_,
           .@, .MLOG$_@
           still exist

If you encounter above error during fast refresh of materialized view in Oracle (refresh complete works fine), check that materialized view owner has rights for SELECT on materialized log view tables.

Execute grant for every table as follows:

grant select from {table_owner}.mlog$_{table_name} to {materialized_view_owner};

Grant via roles (like DBA) is not sufficient enough.