I've narrowed this down. If you create a StatefulKnowledgeSession using JPAKnowledgeService.newStatefulKnowledgeSession(..) then it creates a COmmandBasedStatefulKnowledgeSession which doesn't implement InternalKnowledgeRuntime. I'm going to look at creating a statefulKnowledgession using the knowledgebase. Is it going to be a problem if i upgrade a process instance using the non command based statefulknowledgesession and then later access that process instance with a session from JPAKnowledgeService?