I'm getting a PL/SQL: unhandled user-defined exception error but there's no error We have a .net application that suddenly started hanging. The log indicates the error is an unhandled user-defined exception and gives a line number. We can't find any error in the function, yet it hangs indefinitely. We have had to kill the process in the past but we don't think we killed this one. Trace log shows:

errors in file
/u01/app/oracle/diag/rdbms/ccccc/ccccc/trace/prdccccc_ora_22685.trc
(incident=52744):
ORA-00603: ORACLE server session terminated by fatal error
ORA-24557: error 6510 encountered while handling error 28; exiting server process
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "FUNCTIONNAME", line 13
ORA-06512: at line 1
ORA-00028: your session has been killed
Incident details in: /u01/app/oracle/diag/rdbms/ccccc/ccccc/incident/incdir_52744/prdccccc_ora_22685_i52744.trc
Fri Oct 14 17:30:41 2016
Dumping diagnostic data in directory=[cdmp_20161014173041], requested by (instance=1, osid=22685), summary=[incident=52744].
Fri Oct 14 17:30:41 2016
opiodr aborting process unknown ospid (22685) as a result of ORA-603
Fri Oct 14 17:30:41 2016
Sweep [inc][52744]: completed
Sweep [inc2][52744]: completed
Fri Oct 14 17:43:05 2016
Memory Notification: Library Cache Object loaded into SGA
Heap size 51200K exceeds notification threshold (51200K)
Details in trace file /u01/app/oracle/diag/rdbms/ccccc/ccccc/trace/prdcrccf_ora_27648.trc
Fri Oct 14 17:43:05 2016
KGL object name :2387355888921555146 DEFAULT


This is the function containing the "error"

CREATE OR REPLACE 
FUNCTION
  fnGetCarriersForGroup(pGroupID IN INTEGER DEFAULT NULL)
  RETURN IDsTable
  PIPELINED
  AS
             lRow IDs;
             CURSOR cCarriers IS SELECT * FROM vwCarrierGroups 
                                      START WITH ID=NVL(pGroupID,0)
                                      CONNECT BY NOCYCLE PRIOR ID = ParentID;
  BEGIN
             lRow := IDs(NULL, NULL, NULL, NULL);

             FOR cRow IN cCarriers LOOP
                         IF (cRow.EntityID IS NOT NULL) THEN
                                      lRow.ID := cRow.ID;
                                      lRow.GroupName := cRow.GroupName;
                                      lRow.EntityID := cRow.EntityID;
                                      lRow.ParentID := cRow.ParentID;

                                      PIPE ROW(lRow);
                         END IF;
             END LOOP;

RETURN;
END;
This turned out to be a false lead -- there was not an error at all, but rather it had been killed by the developer after it hung. I wonder why it indicates "Line 13" in every case where the error occurs.