As far as I know, this happens when PL/SQL Developer looses connection to DB. From one point of view that's quite logical - when the connection is lost, the Developer can't check for session's transaction status. The problem is, that if you lost the connection to DB, you can't affect the session's transaction (as you can't reconnect to the same session), so the commit/rollback buttons are useless anyway. The only benefit from this behavior is informational - you know, that there could be an uncommitted transaction on the session you lost connection to.