Many iMIS users have received the following error at some point when using iMIS 10.x:
The Customer Portfolio is shutting down due to an internal error. Please contact your system administrator. When the user clicks the OK button, iMIS either shuts down or the Manage customers screen goes blank.

The first step is to locate the iMIS log file. This file is a small text file and named something like asi04152005.log, with the date the log file was created as part of its name.
Most of the time, the log files are located in the following folder on the user’s C: drive:
/Documents and Settings/username/Local Settings/Temp/asiTemp/However, if you cannot find the file here, it’s then easier to do a search the C: drive for “asi*.log”.
Once you locate and open the log file in Windows Notepad or MS Word, look for lines that contain the word “Error”, similar to this:
Type: ‘Error’ Source: ‘Customer Portfolio.ctlDetail.PopulateNotes’ Desc: Invalid use of NullThe information in this line provides the best information about what is causing the Customer Portfolio shutdown error.
The log files will tell you (and your Solution Provider or ASI) which line of code is failing. What the log file says will help narrow down the potential cause. The following may help you to narrow it down. If your error is not listed below, you’ll want to work with your Solution Provider or ASI.

Causes of Invalid Use of Null:
If you see this error log entry:
Type: ‘Error’ Source: ‘Customer Portfolio.ctlDetail.PopulateNotes’ Desc: Invalid use of NullThe problem is that a record on the Name_Notes table has a NULL value in the PURPOSE field.

If all you have is the three following lines, then most times they can pinpoint a specific member record:
Type: ‘Error’ Source: ‘Customer Portfolio.ctlMainDetail.LoadContact’ Desc: Invalid use of Null
Type: ‘Error’ Source: ‘Customer Portfolio.ctlMainDetail.LoadID’ Desc: Invalid use of Null
Type: ‘Error’ Source: ‘Customer Portfolio.ctlExecScreen.ctlHistory1_LoadNameRecord’ Desc: Invalid use of NullThe most common cause will be on the Name_Address table and will be because they do not have a record with PREFERRED_MAIL=1 for that particular ID.
The second most common cause will be 0’s in any of the Name.MAIL_ADDRESS_NUMBILL_ADDRESS_NUM or ADDRESS_NUM_X fields. If you verify that they have the expected Name_Address records, then running “Rebuild Name_Address Pointers” script will fix this.

Other errors:
Type: ‘Error’ Source: ‘Customer Portfolio.ctlMainDetail.ShowAddress’ Desc: Object variable or With block variable not set
Type: ‘Error’ Source: ‘Customer Portfolio.ctlMainDetail.tabAddresses_Switched’ Desc: Object variable or With block variable not setThe Name and Name_Address cause for this is often a duplicate Name_Address record for the problem ID, meaning they have two entries with the same PURPOSE for a single ID.
Thanks to Elizabeth Livingston of (C)Systems as posted on the NiUG listserve.