Toad World® Forums

100 % repeatable crash


I found a way to get exception attached below with 100% probability.
To get it: In object explorer find a user, then drop him by sql script. Finally double click on him in explorer [to get details].
What is more interesting tables has been secured against this issue.


Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
Stack Trace:

Server stack trace:
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at Quest.FastData.FastTable.RowCollection.GetFastRow(FastTable fastTable, Int32 index)
at Quest.FastData.FastTable.System.Collections.IList.get_Item(Int32 index)
at Quest.FastData.FastRowCollection.get_Item(Int32 index)
at Quest.Toad.Oracle.Trl.Users.UserInfoTrl.CheckSysDbaLogId(Object sender, EventArgs e)
at Quest.Toad.Trl.BaseSqlTrl.CompletelyDone(Boolean hasLock)

Exception rethrown at [0]:
at Quest.Toad.Util.Global.RethrowKeepingStackTrace(Exception e)
at Quest.Toad.Trl.BaseSqlTrl.OnFetchException(Exception exc, Boolean notificationManager)
at Quest.Toad.Trl.BaseSqlTrl.CompletelyDone(Boolean hasLock)
at Quest.Toad.Trl.BaseSqlTrl.Done(Object sender, EventArgs args)
at Quest.Toad.Trl.BaseSqlTrl.AsyncDone(Object sender)


Sorry for the late response on this. Which database is this on?


I use Oracle.

SELECT * FROM V$VERSION results as follow:

Oracle Database 11g Enterprise Edition Release - 64bit Production

PL/SQL Release - Production

CORE Production

TNS for Solaris: Version - Production

NLSRTL Version - Production


While we could improve this, it would mean we would need to query the DB all the time. We prefer to cache the information.

I did make a task, QAT-2482, to at least avoid the crash and exception.


it will be enough if no unhandled error will be raised. Imho It will be great if, when sbdy will try to access not existing element, warning will be shown.


I agree. I’ll be creating QAT shortly to address this issue.