BpmData form feedback has been received from client but not processed by server code

I’m getting the exact same error described in this thread:

Only issue is I am not calling MasterUpdate or Update. I can’t see any way I am creating an infinite loop. I just set a context variable or raise and exception, depending on what button they press. What else could be causing this issue? I tried disabling all other BPM’s for the SalesOrder BO but the error persists.

Summary
Business Layer Exception

BpmData form feedback has been received from client but not processed by server code

Exception caught in: Epicor.ServiceModel

Error Detail 
============
Correlation ID:  1ce7f428-1cd9-4c31-ae1f-cad95925fd55
Description:  BpmData form feedback has been received from client but not processed by server code
Program:  Epicor.Customization.BPM.dll
Method:  FinalizeBpmContextUsage
Line Number:  271
Column Number:  21

Client Stack Trace 
==================
   at Epicor.ServiceModel.Channels.ImplBase`1.ShouldRethrowNonRetryableException(Exception ex, DataSet[] dataSets)
   at Erp.Proxy.BO.SalesOrderImpl.MasterUpdate(Boolean lCheckForOrderChangedMsg, Boolean lcheckForResponse, String cTableName, Int32 iCustNum, Int32 iOrderNum, Boolean lweLicensed, Boolean& lContinue, String& cResponseMsg, String& cCreditShipAction, String& cDisplayMsg, String& cCompliantMsg, String& cResponseMsgOrdRel, String& cAgingMessage, SalesOrderDataSet ds)
   at Erp.Adapters.SalesOrderAdapter.MasterUpdate(Boolean lCheckForOrderChangedMsg, Boolean lcheckForResponse, String cTableName, Int32 iCustNum, Int32 iOrderNum, Boolean lweLicensed, Boolean& lContinue, String& cResponseMsg, String& cCreditShipAction, String& cDisplayMsg, String& cCompliantMsg, String& cResponseMsgOrdRel, String& cAgingMessage)
   at Erp.UI.App.SalesOrderEntry.Transaction.Update()

I did a trace. MasterUpdate is showing up twice. If I turn off the BPM, it only shows up once. But I am not calling MasterUpdate or Update anywhere in this BPM. I added I message box right after the BPM form, it does not display, the error message happens before that.

I’m super confused…

Anyone have thoughts on this? I would think using a BPM form for a Cancel/Confirm function would be pretty common but I can’t seem to get around this bizarre error.

Hello Evan. I don’t have a fix, but we had code doing exactly what you are doing, that worked fine at 10.2.400.9. We recently upgraded to 10.2.400.16, and it stopped working, producing the same error that you are getting. We are convinced the problem is connected to a change in Epicor between these two releases. If we clear the cache at the start of the session, it works fine, as far as we can tell. We have raised a ticket with Epicor. They have re-produced the problem, and that is where we are at the moment. Once I get some feedback, I’ll update you. Have you raised it with Epicor? We are in the UK.

2 Likes

No, I didn’t make a case. I figured I was just being clueless as usual. The process of putting in cases are always super tedious. Even its something simple they always want to call and do a webex =/

Let me know how it goes.

I know exactly how you feel, as we are going through that exact process at the moment. It’s something that needs fixing in Epicor, and is not a coding error. It’s been a week since we raised the ticket already. Are you between the versions I mentioned? Will update you once we have something.

No, I’m on 10.2.500.7

Has there been any progress on this issue? I am getting this same error when calling a simple BPM data form. I stripped my BPM down to just calling the form and it still periodically errors. This seems like a serious bug to me. Testing the data form in the designer or clearing the cache seems to temporarily fix it. I have had a case open with Epicor since 12/4/19 and it still is unresolved.

I don’t know sequence of the method calls, but it looks like MasterUpdate calls Update.
BPM Forms must be used only in directives attached to the outermost method in the call chain (AFAIR our documentation mentions that).

There is no way to suspend and then resume service method call. So when BPM form raised from the inner method it terminates execution of the outer one. Then client code recalls the method raising the form (for the client it is outer method). As a result you get two method calls instead one.

Also, most likely, you have directives on both methods (MasterUpdate and Update). As a result, a directive on the outer method detects that call accomplished by BPM form call information, but can’t find related BPM form action in itself and fails. It is oversimplified explanation, but it is quite near to the real behavior.

2 Likes

I’m not sure if you are addressing me or the other posters, but I was careful to state I disabled ALL other BPMs, and you can see from my diagram I am not calling Update or Master Update from my BPM.

About the call chain, are you saying I should move the BPM from Update to MasterUpdate?

@Evan_Purdy. Sorry, I’m still unfamiliar with the site UI yet.

About the call chain, are you saying I should move the BPM from Update to MasterUpdate?

If MasterUpdate calls Update, then yes, you got my point correctly.

How do you know which BO Methods are going to call each other? Just looking at traces?

I’m? Mostly from code :).
But in your case, client trace is a good starting point.
If it contains MasterUpdate and does not contain Update, but your directive executes, it means MasterUpdate calls Update. And vice versa.

Well our code has run just fine for two years (up to 10.2.400.9), and then didn’t when we jumped to 10.2.400.16. Still broken at 10.2.400.18. We have a ticket open with Epicor, and are hoping it’s been addressed in 10.2.400.19 (due tomorrow), and equivalents for other people. They are saying they have addressed a bug that ‘may’ fix this. Will be testing it as soon as we can get our hands on it. It seems you can put a simple BPM data form anywhere at the moment and it will fail.

For those at 500 (Evan?), I notice 10.2.500.8 was released yesterday. Do you have a test system that can be upgraded to test if they have fixed it?

10.2.500.8Tools and TechnologiesICE-BPM | BPResolved IssueERPS-130376BPM Data Form displays the “Row has been removed” error

This is the one they said ‘may’ fix our problem. I won’t be convinced until I’ve tried it. I believe I’ve seen this error as well as part of this.

I have my doubts whether it does the same thing, but I’ll be trying the update because we have had exactly the “row has been removed” error.

I haven’t seen the “not processed” error since the time I tried to use two BPMData forms in one BPM, so I suspect the two have different causes.

So do we, but it’s all Epicor have given us so far. Going to have to try the same one at 400 before they’ll do anything else, if that doesn’t fix it. Hoping it does. Been waiting a couple of weeks already. Looks like some people have been waiting longer. It’s impacting our business.

After Upgrading to 10.2.500.8 we don’t get that error anymore.

1 Like

Thanks for the update Joseph. Sounds encouraging for when we load the 400 version.