Error after Lifetime deploy "Activity isn't mapped to an object at Runtime"

Hi guys,

After having Lifetime deploy from one environment to another, I've got bunch of these errors in "Service Center > Monitoring > Errors"

Activity 'ef36c3c1-a3e2-452d-9ec9-5b49c924bbc3' isn't mapped to an object at Runtime

   at ssScreening.Processes.Handling.ActivityActionsHandler.ExecuteActivityWebService(HeContext heContext, String ssKey, Int32 activityId, Int32 processId, Int32 tenantId, Int32 userId, String locale, Action`1 activityMethod)
   at ssScreening.Processes.Handling.ActivityActionsHandler.<>c__DisplayClass1b.<ExecuteActivityActionv2>b__19(HeContext heContext)
   at ssScreening.Processes.Handling.ActivityActionsHandler.ExecuteWebService(String name, Func`2 method, Boolean isUnattended)
   at ssScreening.Processes.Handling.ActivityActionsHandler.ExecuteActivityActionv2(String ssKey, Int32 activityId, Int32 processId, Int32 tenantId, ActivityStatus forInitialStatus, DateTime previousNextRun)
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values)
   at System.Web.Services.Protocols.WebServiceHandler.Invoke()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
   at System.Web.Services.Protocols.SyncSessionlessHandler.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
   at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)
   at System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
   at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
   at System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
   at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)

Do you know the meaning of that exception and what can cause it?

For me it looks like something is wrong with launched Buisness Process that was launched before Lifetime deploy, as it says something about 'Activities'. I have checked them and didn't find any problems. But I'm afraid, it may cause some problems in the future.


Hi Vasily,

You didn't have any impact analysis warning during you deployment?

Could you please run the following query on DEV and Destination environment:

Select * from [ossys_BPM_Activity_Definition] where SS_Key = 'ef36c3c1-a3e2-452d-9ec9-5b49c924bbc3'

This way you can confirm if the activity was a new activity in your new BPT flow version, delivered on the destination environment with the deployment of the new version of your application.

I agree with your suspicion, seems that BPT engine started before deployment ends with new activities definitions.

To avoid errors like and to be safe, you would need to stop the BPT processes to run during deployment.

This would of course have impact on your business and have a sort of "downtime" during the deployment.

However to know exactly what went wrong and to confirm the suspicions, i would suggest to contact outsystems support and inform us here about what went wrong.

Hope it helps you.

Best regards.

Daniel Martins.


Daniel, thank you for the tip

I remember some business processes were suspended during deploy, but after deploy they continued executing (no more suspended in Service Center > Monitoring > Processes)

SQL, you provided, fetched new Condition Start in old BPT. And according to documentation, new Condition Start should not be a problem for lifetime deploy:

During the deployment of applications, a specific validation is ran for conditional starts. It goes over all instances of active processes and checks whether each conditional start in the process has an activity instance listening to its event. Any missing activity instance is created. 

Thank you for the help!

Hi Vasily,

Glad that I could help!

Indeed you need to forsee and in some situations is very difficult to antecipate what are the impacts on changes on the BPT flow on active and running processes...