VERSICH

The NetSuite Custom Field Setting That Controls Whether a Record Can Be Deleted

the netsuite custom field setting that controls whether a record can be deleted

Introduction 

NetSuite is one of the most capable ERP platforms available but its depth also means that small configuration decisions can have significant downstream consequences. One of the most common points of friction in day-to-day NetSuite administration is a dependency error that appears when you try to delete a custom record. 

You go to delete it. NetSuite stops you. The error says dependent records still exist. 

Understanding exactly why that happens and what the setting controlling it actually does is the difference between cleaning up your data safely and quietly compromising it in ways that surface weeks later in broken reports and failed integrations.

Why the Deletion Gets Blocked 

The block happens because the custom record you are trying to delete is being referenced somewhere else in the system through a List/Record custom field. 

List/Record and Multiple Select fields draw their available values from another record type. A custom field called Colour, for example, might source its values from a custom record called Colour List. If someone deletes the value Purple from that list, every record that had Purple selected in its Colour field is suddenly affected. 

NetSuite is not being difficult here. It is protecting the relationships between your records  and it hands that decision to you through one specific setting on the custom field itself.

The Setting That Controls It: Allow Delete of List/Record Values 

You will find this setting on the custom field under the Validation and Defaulting subtab. It only appears for fields of type List/Record or Multiple Select that have the Store Value option enabled. 

It gives you two ways to handle a deletion attempt on a record that the field references. 

Prevent and Return Error 

This is the default and, in most cases, the right choice. 

This option blocks the deletion and returns an error, along with a link to a Dependent Records page that lists every dependent field and the records involved. It protects your data integrity by stopping anyone from deleting a custom record that is still actively referenced elsewhere in the system. 

For NetSuite environments where custom records feed reporting, saved searches, or integrations including those connected through MuleSoftCeligo, or Boomi and this is the setting that keeps those downstream connections intact. 

Allow and Set Dependent Field Values to Null 

This option lets the record be deleted and automatically clears the value from every record that referenced it, logging a system note each time. 

It can save significant time during data cleanup or migration work. It can also cause real damage if used without care because nulling those values may leave related records incomplete and break the reporting, workflows, or integrations that depend on them. 

For any field feeding a NetSuite integration or an external platform like Salesforce, the downstream effects of nulling values across hundreds of records can be difficult to trace and expensive to reverse. 

The Safe Way to Delete a Referenced Custom Record 

If you need to delete a custom record that has dependencies, the correct approach is not to reach for Allow and Set to Null by default. 

Keep Prevent and Return Error in place. Then update or replace the value on the records that reference it. Once no dependencies remain, the custom record can be deleted safely with no surprises downstream. 

It takes a few more minutes. It is almost always worth it. 

The Nuances Most Tip Posts Leave Out 

This is where the setting is genuinely worth understanding rather than simply toggling. 

It overrides whether a field is mandatory. 
Allow and Set to Null can produce a null value even on a mandatory field. If a field is mandatory, keep it on Prevent and Return Error. You do not want required fields sitting empty across your records without anyone noticing. 

Every nulling is logged. 
When a value is cleared this way, NetSuite writes a system note on each affected record, recording the user who deleted the referenced record and marking the change as an Unset. That is useful for auditing but it is a record of what happened, not a safeguard against it. 

SuiteBundler ignores this setting. 
If you move customisations between accounts using SuiteBundle, the Allow Delete of List/Record Values setting is not honoured in that process. Do not rely on it when migrating customisations between environments. 

It is not available everywhere.
The option does not appear for Workflow or Workflow Action custom fields, and it only shows up when Store Value is enabled on a List/Record or Multiple Select field. 

When to Use Each Option 

For anything in production and especially for fields that feed reporting, saved searches, workflows, or integrations. Prevent and Return Error is the safe default. Keep it there. 

Reach for Allow and Set Dependent Field Values to Null only in controlled situations such as a data cleanup or a migration, tested in a sandbox first, and never on mandatory fields you cannot afford to leave empty. 

As with many NetSuite configuration decisions, convenience should never come at the expense of data integrity. The impact of changing a setting like this one is rarely visible immediately, and it surfaces later, in a broken saved search, a misfired workflow, or an integration that starts receiving unexpected null values. 

If you are working through a data migration and need to understand the full range of configuration decisions involved, our blog on MuleSoft integration services covers how integration architecture and data governance intersect in connected enterprise environments.

Why These Details Are Worth a Partner 

Settings like this one look small. They are exactly where NetSuite environments quietly go wrong. 

A single default changed without understanding the downstream effect can undermine reporting, break an integration, or leave records incomplete months later. Avoiding that is less about knowing the setting exists and more about having configured these decisions enough times to know where the risks are, and what the consequences look like when they go wrong. 

This is the role Versich plays. As a NetSuite managed services and consulting partner, we implement, optimise, and support NetSuite environments so decisions like this one are handled correctly from the start and caught quickly when something needs attention. 

For many teams it works like having a full NetSuite team on hand, without the overhead of building one in-house. Whether you are cleaning up custom records, planning a migration, or want an expert managing the day-to-day health of your system, our NetSuite support services help keep your environment stable, accurate, and aligned with how your business actually runs. 

If you are building toward a more connected architecture including integrations between NetSuite and platforms like Salesforce or deploying headless integration capabilities, our blog on headless MuleSoft and AI-native integration covers what that shift means for how your data architecture needs to be governed. 

Looking for NetSuite Solutions?

Explore our expert NetSuite services and get started today.

Get Started
CTA Illustration

Frequently Asked Questions

Where do I find the Allow Delete of List/Record Values setting?

On the custom field under the Validation and Defaulting subtab. It only appears for List/Record or Multiple Select fields that have Store Value enabled. If you do not see it, check that Store Value is turned on for the field in question.

What is the default setting and why?

The default depends on the referenced record type. For custom records and several others, it defaults to Prevent and Return Error which protects your data by blocking deletions that would break dependencies. This default exists because nulling field values across dependent records is rarely the right outcome in a production environment.

Is it safe to use Allow and Set Dependent Field Values to Null?

It can be, for controlled cleanup or migration work in a sandbox environment. But it clears the value on every referencing record including mandatory ones, and can affect reporting, workflows, and any integrations connecting NetSuite to external platforms. Always test the impact before using it in production.

How do I delete a custom record that has dependencies?

Leave the setting on Prevent and Return Error, identify all records that reference the value using the Dependent Records page, update or replace the value on those records, and then delete the custom record once no dependencies remain.

Does this setting affect SuiteBundle deployments?

No. SuiteBundler ignores the Allow Delete of List/Record Values setting entirely. If you are moving customisations between accounts, do not rely on this setting being honoured in the destination environment.

Will I have a record of what was nulled?

Yes. NetSuite logs a system note on each affected record showing the user responsible and marking the change as an Unset. This provides an audit trail but it does not undo the change which is why testing in a sandbox before using Allow and Set to Null in production is always the right approach.