{"record":{"id":"c3ec72404de28010","repo":"flowable/flowable-engine","slug":"not-implemented-yet","errorCode":null,"errorMessage":"Not implemented yet!!!","messagePattern":"Not implemented yet!!!","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"modules/flowable-engine/src/main/java/org/flowable/engine/impl/migration/ProcessInstanceMigrationManagerImpl.java","lineNumber":299,"sourceCode":"                                procDefKey = document.getProcessInstanceVariables().getOrDefault(procDefKey.substring(2, procDefKey.length() - 1), procDefKey).toString();\n                            }\n                        }\n                        try {\n                            ProcessDefinition mappingProcDef = resolveProcessDefinition(procDefKey, mapping.getCallActivityProcessDefinitionVersion(), document.getMigrateToProcessDefinitionTenantId(), commandContext);\n                            mappingModel = ProcessDefinitionUtil.getBpmnModel(mappingProcDef.getId());\n                        } catch (FlowableException e) {\n                            validationResult.addValidationMessage(e.getMessage() + \" for call activity element with id '\" + mapping.getToCallActivityId() + \"' in the process definition with id '\" + mappingModel.getMainProcess().getId() + \"'\");\n                            continue;\n                        }\n                    } else {\n                        validationResult.addValidationMessage(\"There's no call activity element with id '\" + mapping.getToCallActivityId() + \"' in the process definition with id '\" + mappingModel.getMainProcess().getId() + \"'\");\n                        continue;\n                    }\n                }\n\n                if (mapping.isToParentProcess()) {\n                    FlowElement callActivityFlowElement = newModel.getFlowElement(mapping.getToCallActivityId());\n                    throw new UnsupportedOperationException(\"Not implemented yet!!!\");\n                }\n\n                //Check the target flow element\n                List<String> toActivityIds = mapping.getToActivityIds();\n                for (String targetActivityId : toActivityIds) {\n                    if (!isActivityIdInProcessDefinitionModel(targetActivityId, mappingModel)) {\n                        validationResult.addValidationMessage(\"Invalid mapping for '\" + execution.getCurrentActivityId() + \"' to '\" + \n                        \t\ttargetActivityId + \"', cannot be found in the process definition with id '\" + mappingModel.getMainProcess().getId() + \"'\");\n                        continue;\n                    }\n                    //We cannot move an activity inside a MultiInstance container\n                    FlowElement targetFlowElement = mappingModel.getFlowElement(targetActivityId);\n                    String targetFlowElementMultiInstanceParentId = getFlowElementMultiInstanceParentId(targetFlowElement);\n                    if (targetFlowElementMultiInstanceParentId != null) {\n                        validationResult.addValidationMessage(\"Invalid mapping for '\" + execution.getCurrentActivityId() + \"' to '\" + targetActivityId + \"', cannot migrate arbitrarily inside a Multi Instance container '\" + \n                        \t\ttargetFlowElementMultiInstanceParentId + \"' inside process definition with id '\" + mappingModel.getMainProcess().getId() + \"'\");\n                        continue;\n                    }","sourceCodeStart":281,"sourceCodeEnd":317,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-engine/src/main/java/org/flowable/engine/impl/migration/ProcessInstanceMigrationManagerImpl.java#L281-L317","documentation":"During migration validation, when an activity mapping targets the parent process via a call activity (mapping.isToParentProcess()), Flowable's migration manager throws UnsupportedOperationException because migrating to a parent process across the call-activity boundary is not yet implemented.","triggerScenarios":"Executing a process instance migration (doValidateActivityMappings via doValidateProcessInstanceMigration) where any ActivityMigrationMapping is configured with toParentProcess(true) / a toCallActivityId.","commonSituations":"Trying to migrate instances out of a call-activity scope up into the parent process definition; generically built models that accidentally enable parent-process targets; attempting a feature not supported in the installed Flowable version.","solutions":["Remove toParentProcess mappings; migrate to activities within the same or another regular process definition instead.","Split the migration: end/restart the child instance and migrate the parent instance separately.","Check whether a newer Flowable release supports parent-process migration targets and upgrade.","Wrap validation in try-catch and fall back to manual instance manipulation if this pattern is essential."],"exampleFix":"// before\nmapping.fromActivity(\"subTask\").toParentProcess(\"parentApprovalTask\");\n\n// after\nmapping.fromActivity(\"subTask\").toActivity(\"approvalTask\"); // same-level target only","handlingStrategy":"validation","validationCode":"for (ActivityMigrationMapping m : mappings) {\n    if (m.isToParentProcess()) throw new IllegalStateException(\"parent-process migration target not supported\");\n}","typeGuard":null,"tryCatchPattern":"try {\n    processInstanceMigrationBuilder.migrate();\n} catch (UnsupportedOperationException e) {\n    logger.error(\"Unsupported migration target: \" + e.getMessage());\n}","preventionTips":["Never configure toParentProcess targets in migration mappings","Check Flowable release notes for call-activity migration support","Test migration documents against validation before executing"],"tags":["java","flowable","migration","unsupported-operation"],"backgroundTag":"unsupported-operation","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-18T11:17:12.947Z"}