What does EMPTY_NATE_DISPOSITION Error mean?

If I receive this response to an API call, what should I be looking into for possible root causes of the error?

"ErrorType" : "Error"
"ErrorSubType" : "nwsysnateexception"
"ErrorCode" : "EMPTY_NATE_DISPOSITION"
"ErrorDescription" : "NATE pending record disposition missing; nateld=afb2793f-1fc8-4566-a638-80f5673a169f, realTableName=GeneralLedgerHeader, nwId=1e172cde-b276-45ba-ba76-59df5f74d963.",
"Errorstyle" : null,
"ErrorPayload" : []
"ErrorTechnicalDetails" ! NULL

That error message indicates that the record we’re trying to save doesn’t have a value in the nwNateDisposition field. This is the field that tells the platform what state the record is in inside of the NATE Container, based on what modification operation(s) the user has performed on it. Options include:

  1. PRISTINE - the version of the record is unchanged
  2. INSERTED - this record is new
  3. UPDATED - this record is pre-existing and is changed from the “live” (aka. PRISTINE) version
  4. DELETED - this record is removed/deleted

Without knowing what exactly you’re calling to produce that error, I would review the input you’re passing to the API, if any and ensure that the nwNateDisposition field is populated. If the API does not take any input, this requires investigation from the owning team.

2 Likes

Root cause of the situation here seemed to be this

  • Temporary header and detail tables were passed to WriteGLTransaction and WriteGLTransaction did its thing including doing a Save HD of the implied HD Structure.
  • An after logic-block extension ‘WriteGLTransactionAfterExt’ called another logic block ‘DoDeriveGLWork’ passing along the GeneralLedgerHeader data source (not the H/D structure). I think the header record may have still been a temporary record based on what was originally passed to WriteGLTransaction even though WriteGLTransaction had executed a Save HD on the H/D structure.
  • DoDeriveGLWorkhad a Create Existing HD Structure statement from the passed in GeneralLedgerHeader and a later a Save HD. Somewhere in here probably from one of those two actions, it seems things went awry - there as no stack trace available.