No Matching Buffer Errors

A no matching buffer error refers to mismatch in the data within the component buffer scroll hierarchy (scroll 0, scroll 1, scroll 2, scroll 3).

It occurs due to one or more orphaned data rows in the lower scroll levels that do not link back to the higher scroll levels through keys. The component buffer is where PeopleSoft enforces its own referential integrity. This means that while there may not be any relationships between tables defined at the database level, when records are loaded into a component, they need to maintain a key based relationship according to the scroll level structure in that buffer.

The classic message is something like this:
No matching buffer found for level. (15,26)

Typically no matching buffer errors are caused by processes that delete or update rows from parent records without updating or removing rows from the appropriate child record within the component scroll level structure. If the component buffer can load a row from a lower (child/grand-child) scroll that doesn't match on keys to the scroll levels above it, the error will occur.

There are two ways to fix a no matching buffer error:

  1. Put the missing parent-record row back (or change the keys back)
  2. Remove the orphaned row from the child record

No matching buffer errors are particularly common on effective dated and sequenced records.

A SQL trace is a good place to start with investigating buffer errors. The point at which a rollback happens in the trace is typically where the no matching buffer error has occurred. This is usually at the point when the orphaned row in the child record was loaded.

After you've identified the culprit child record, the next step is to examine the component scroll structure and find candidate records in the scroll levels above to find the cause of the issue. So if the child record is at scroll level 2, look at records at scroll level 1, and 0. Remember this error is key-based so you only need to be concerned with records that have one or more of keys in the child record.

Also, as Nan points out, the error is not necessarily with data from the record you selected the — the error may be on any other child record being loaded in the component that shares the same keys. So don't go making too many assumptions. You may need to systematically check tables loaded by the component. The SQL in this post may help you a bit if that's the case.

Sometimes, opening the component with include history (all effective dates) will prevent the no matching buffer error. This is a sign that the error is a result of an effective date or effective sequence mismatch that is causing the problem.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License