object locked by another process in same transaction
A database link is being used in the cluster database environment that loops back to the same instance. One session is trying to convert a lock that was obtained by the other session.
Get the more restrictive lock first. For example, if session 1 gets a share lock and session 2 gets an exclusive lock on the same object, get the exclusive lock first. Or, simply use the same session to access the object.