server rejected recipient address

  • 7 November 2007
  • 5 replies
  • 0 views

Badge +8

I have two workflow instances in an error state. The error reads


System.Runtime.InteropServices.COMException (0x8004020F): The server rejected one or more recipient addresses. The server response was: 550 5.1.1 <xxx@domain.com>... User unknown


Our workflow uses an Infopath form and a sql server database that defines a set of roles for a cost center. When the workflow is instantiated the cost center is entered, and in subsequent activities the destination rule reads the db for that specific role, assigns the activity to that person, then sends the client email. These two are failing because the person in that role is no longer with the company and the email address is unresolved.


So now that I've changed that role person in the database, how do I get the workflows to 'rerun' the dest rule for those activities? I can't use server manager to do a 'goto' or a stop/start because it is in an error state. If I edit the code in the 'repair error' tab of the error log it will be modified for all workflows, so how do I modify it for this instance only? Is there another way around my problem?


Thanks.


Steve


5 replies

Badge +13
Can't you just use [Repair] without changing code now that you've fixed the data?
Badge +8

Peter,


The error occurs in the Infopath client event. The destination rule has already run and assigned the user, and it appears that Repair Error just reruns the client event code.


I think what I'll do is to put code in the SMTPFunction function to change the recipient from the dest user to a hard-coded value when the folio matches the one in an error state. That way the code will exist in the function, but will only be run in this particular instance.


I could probably find that code element in the db and change it back afterward, but that is a no-no as far as K2 is concerned so I won't go there.


I would think that there would be some built in process to handle this kind of situation, as I'm sure we are not that unique in the way we have built our workflow.


 Thanks for your reply.

Badge +11

Hi Steve,


You're on the right track.  If you do change the code in the Error Repair window, make sure you limit the change to the specific instance only.  We usually recommend using the ProcessInstanceID - as this will always be unique.


Regards,


Ockert

Badge +6

I am getting following error,


"System.Runtime.InteropServices.COMException (0x80040213): The transport failed to connect to the server.".


I am adding destination user in the Activity and Sending the mails in Client event using the IP of the mail server. Which is retrived from the file "K2Server.Config" in bin of K2.

Badge +13

Are you using .NET 1.1 or 2.0's SMTP client class?

The 2.0 one uses .SmartHost =  

I only got that kind of error when the network has issues. 

Reply