Hello everyone,
I have a BPT process that reaches an end state and is terminated. I am evaluating the possibility of reactivating the same process instance by updating its status back to Active and then changing the record state so that a Conditional Start is triggered.
From a platform and runtime perspective, what are the risks or drawbacks of this approach compared to starting a new process instance? Are there any potential issues related to process integrity and monitoring?
You shouldn’t “revive” a terminated BPT instance; you should start a new one.
In OutSystems BPT, once a process instance reaches an End or Terminate node, that instance’s lifecycle is logically finished. The engine and monitoring features (Service Center, BAM, logs) all assume that:
Trying to force it back into Active and fire a Conditional Start for the same instance will break those assumptions and can lead to subtle and hard‑to‑debug issues.
Engine state vs. database state mismatch BPT execution state is managed by the platform, not just by your business tables. Manually changing status/records at the DB level bypasses engine logic:
Broken semantics of “End” / “Terminate” In process design, End/Terminate means “this instance is done”:
Monitoring and reporting issues (Service Center / BAM) Monitoring tools assume a monotonic lifecycle (Running → Suspended/Error → Finished):
Change impact and versioning problems Processes are versioned artifacts. Suspended/active instances can be impacted when you publish changes (activities removed, paths changed):
Concurrency / resource utilization The platform controls concurrent execution slots per front end and schedules work accordingly. Understanding BPT Process Limits
Integrity of business logic From a business perspective, a terminated process usually means: final decisions taken, side‑effects executed, external systems updated.
Instead of reviving a terminated instance:
Model “re‑run/reopen” explicitly in the process flow
Start a new process instance and link it to the same business entity
Use business logic to decide which path to follow
From a platform/runtime perspective, “reactivating” a terminated BPT instance by manually flipping its status and triggering Conditional Start is unsafe and not supported by the BPT model. It risks process integrity, monitoring correctness, and future maintainability. Starting a new instance (possibly through a dedicated “reopen” flow or subprocess) is the robust and recommended way to handle reactivation scenarios.