More_than_one_match_found when updating a single custom record in NetSuite via Celigo

I’m trying to update one specific custom record in NetSuite via Celigo, but every lookup returns a more_than_one_match_found error, even though only one record exists.

1. Background

  • Custom record type: AFP
  • NetSuite record type (internal): customsale_afp
  • Goal: Update exactly one AFP record via Celigo

2. Problem with lookup criteria

In the Celigo lookup criteria for the AFP record:

  • Internal ID is not available in the dropdown list for this custom record type.

Workaround I tried:

  1. Temporarily change the record type to Transaction
  2. Add a lookup criterion using internalid
  3. Switch the record type back to AFP

3. Result when using Internal ID

Even when I use the exact internal ID of the AFP record, Celigo returns:

{
  "code": "more_than_one_match_found",
  "message": "A mapping error occurred. More than one match for \"[\"internalid\",\"is\",\"52719\"]\" for the record type \"customsale_afp\".",
  "source": "lookup"
}

This happens despite:

  • Only one AFP record existing with this internal ID
  • That record having only one line

4. Tried using a unique custom field instead

To rule out internal ID issues, I:

  • Added a custom body field (custbody_afp_id) to the AFP record
  • Populated only one AFP record with a unique value (1337)
  • Used that field as the lookup criterion

Result:

{
  "code": "more_than_one_match_found",
  "message": "A mapping error occurred. More than one match for \"[\"custbody_afp_id\",\"is\",\"1337\"]\" for the record type \"customsale_afp\".",
  "source": "lookup"
}

5. Additional things I tried

  • Different operators: is, any of, equal to
  • Adding mainline = T and mainline = F
  • Reducing the Celigo mapping to a single field update
  • Ensuring only one record in NetSuite has that value

None of these changed the result.

6. What confuses me

  • There is only one AFP record
  • That record has only one line
  • Both internal ID and a unique custom field still return “more than one match”

7. Possible clue

The customer on the AFP record is a child customer (sub-customer).
I’m not sure if this could affect the lookup behavior.

8. Question

Has anyone seen more_than_one_match_found:

  • On custom transaction records
  • When the lookup clearly targets a single record
  • Or related to child / parent customers

Any insight into what NetSuite or Celigo might be matching “multiple times” here would be appreciated.

What happens if you try the same criteria on a lookup as opposed to a lookup within an import?

This did the trick, thanks @tylerlamparter .

What I did was create a lookup and determine the exact criteria needed to return a single record. It turned out the lookup only worked with these specific conditions:

– Record type: Transaction criteria
custbody_afp_id equal to 1337
mainline is true

In the import step, I changed the record type from AFP (custom record) to Transaction so I could use the equal to operator and add the mainline condition. After that, I switched the record type back to AFP.

By the way, why can’t we use all fields or operators directly when working with a custom record, now you need to switch from record A to B in order to get the correct criteria in Celigo.

Can you share what field type custbody_afp_id is on the NetSuite custom record? Also, if you run a search in the NetSuite UI for that custom record, what operand options does it give you? I think we detect the field type and provide the appropriate operands, but there may be an issue here. Usually, equal to is only for number-type fields.

custbody_afp_id is an integer field so thats correct.