Solving NetSuite Form Customization “Unexpected Error” Issues

This article is relevant if you are a customizing NetSuite forms and you run into issues saving your work.

The Unexpected Error on Save Message

Sure enough, once you discover the power of NetSuite’s form customization manager, you begin to clean up and make your forms work very nicely for your organization. ¬†Everything is going well and you are proud of how your forms are coming out.

Then, for seemingly no reason, when you try to save one of your forms, you get an “Unexpected Error” message. ¬†What? ¬†You try again and now, no matter what you do, you find that you can not modify and save the form without getting the error. ¬† Don’t fret. ¬†You may find yourself in the NetSuite User Group,¬†referencing this thread.

Solving the Save Form Unexpected Error Problem

Most likely, the cause of the problem is NetSuite’s Move Entry Form Elements function. ¬†While this is a great feature, you need to know that it can get confused and then break your form. ¬†Here is what we have observed:

  1. You create a custom subtab.
  2. You move a number of fields to the subtab.
  3. You commit the form and all is good.
  4. You then decide you don’t want those elements on that custom subtab. ¬†So you move all the fields back to your form’s native areas.
  5. All seems okay, but then as soon as you subsequently update the form, you get the error message.
What we have observed is that you need to keep at least one element on the custom subtab. ¬†While not ideal, usually you can find one field that you don’t care about to include on the subtab. ¬†Add the field back to the subtab and then turn off the “show” checkbox to avoid showing it. ¬†The subtab will not show up and the problem seems to go away.

Other Actions to Take to Resolve Form Customization Errors

Sometimes, you may need to clear your browser cache to clean up issues. ¬†If you are experiencing a problem on a form customization, clear your browser cache, and then hit “Ctrl-F5” or equivalent, to reload the web page which will make sure it does not reference anything in memory or disk.

Finally, while not ideal, you may need to rebuild the form. ¬†One customization practice you may want to consider is to make a backup of your complex forms using the “Save as” function. ¬†Hide the form by only allowing your role to see it. ¬†Then, should you really get in a jam, you can pull the backup and continue working. ¬†I agree, not at all ideal, but we have to innovate to get the job done.

If you are looking for help to optimize or customize your NetSuite account, contact us.

Be Sociable, Share!

Marty Zigman

Holding all three official certifications, Marty is Southern California's NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 25 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

More Posts - Website - Twitter - Facebook - LinkedIn - Google Plus - YouTube

| Tags: , , , , , , | Category: NetSuite, Technical | 5 Comments


  1. David O. Wallace
    Posted June 19, 2013 at 9:22 am | Permalink

    When we receive a replacement part from a Vendor Return Authorization we do an Inventory Adjustment to place it into stock. IS this the correct way to handle these incoming part? Or what is the correct way?

  2. Posted June 19, 2013 at 11:05 am | Permalink

    Hello David,

    Let’s ask more questions first:

    1. Do you send back the inventory to the vendor when you start the Vendor Return Authorization? This will decrement inventory and create a vendor credit which can be applied to future charges.

    2. Are they offering to produce a replacement in lieu of the return?


  3. Posted June 19, 2013 at 11:41 am | Permalink

    David writes back on a separate thread:

    Yes we send back the defective unit that has been returned to us by a customer. We create a Vendor Return Authorization taking the unit out of a Returns bin in the warehouse.

    Yes, they send us back a new unit to replace the defective unit and that is when we do an inventory adjustment +1. There are a few we get credit on and no replacement. But I’m interested primarily in the units coming back as replacements.

    Technically, here is what to do:

    1. Send back the unit. You will have a credit on account.

    2. When the new unit comes, it normally would be “received”. Yet, there will not be a purchase order there to receive it. So you have two options:

    a. When you expect a replacement item, create a new PO for this replacement. Set it up so that all the costs and quantities line up. Handle it like you do other receipts.


    b. When you receive it, constitute a new vendor bill for the replacement effectively doing the same thing as the PO.

    This keeps accounting straight and should anyone mis-step, the finances and inventory balances are always correct. Inventory Adjustments, while seemingly convenient, in my mind, obscures the reality.

    Finally, if this is cumbersome, this is when we usually help our clients create an “automated replacement” program that effectively builds these document structures for you.


  4. Damaris Henning
    Posted December 21, 2018 at 3:33 pm | Permalink

    I received the following error when trying to schedule the Reconciliation History Report.


    An unexpected error has occurred. Please click here to notify support and provide your contact information.

  5. Posted December 22, 2018 at 2:50 pm | Permalink


    These kinds of errors generally have to do with custom field definitions or other. I often solve them by trial-and-error. Typically, if you can’t resolve them, you will need to contact Netsuite Support who can look at the system behind the scenes to help diagnose the issue.

    Good luck!


Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>