{"record":{"id":"a40fc3174d0b24bb","repo":"quarkusio/quarkus","slug":"managed-operations-not-supported","errorCode":null,"errorMessage":"Managed operations not supported","messagePattern":"Managed operations not supported","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"extensions/data/hibernate/runtime/src/main/java/io/quarkus/data/hibernate/runtime/hr/StatelessReactiveOperations.java","lineNumber":26,"sourceCode":"\nimport org.hibernate.reactive.mutiny.Mutiny;\n\nimport io.quarkus.data.hibernate.reactive.ReactiveDataQuery;\nimport io.quarkus.data.hibernate.runtime.spi.PanacheReactiveOperations;\nimport io.smallrye.mutiny.Uni;\n\npublic class StatelessReactiveOperations implements PanacheReactiveOperations {\n\n    public final static StatelessReactiveOperations INSTANCE = new StatelessReactiveOperations();\n    private final static StatelessReactiveJpaOperations DELEGATE = new StatelessReactiveJpaOperations();\n\n    private StatelessReactiveOperations() {\n    }\n\n    @Override\n    public Uni<Mutiny.Session> getSession(Class<?> entityClass) {\n        // FIXME: this is wrong\n        throw new UnsupportedOperationException(\"Managed operations not supported\");\n    }\n\n    @Override\n    public Uni<Mutiny.StatelessSession> getStatelessSession(Class<?> entityClass) {\n        // FIXME: this is wrong\n        return DELEGATE.getSession();\n    }\n\n    @Override\n    public Uni<Void> insert(Object entity) {\n        return DELEGATE.insert(entity);\n    }\n\n    @Override\n    public Uni<Void> persist(Object entity) {\n        throw new UnsupportedOperationException(\"Managed operations not supported\");\n    }\n","sourceCodeStart":8,"sourceCodeEnd":44,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/data/hibernate/runtime/src/main/java/io/quarkus/data/hibernate/runtime/hr/StatelessReactiveOperations.java#L8-L44","documentation":"StatelessReactiveOperations is the stateless (StatelessSession-backed) operations facade. getSession(entityClass) returns the underlying stateful Mutiny.Session, which a stateless facade does not have — the implementation throws UnsupportedOperationException (marked FIXME). Only getStatelessSession is meaningful here.","triggerScenarios":"Calling getSession(Class) on StatelessReactiveOperations (e.g. via ReactiveOperations.getSession when the active mode is stateless, such as quarkus.hibernate-orm active stateless session usage).","commonSituations":"Code that needs raw session access (native queries, session-level operations) running under stateless session mode where only StatelessSession is available; shared repository base classes assuming a managed session is always present.","solutions":["Call getStatelessSession(entityClass) to access the underlying Mutiny.StatelessSession instead","Perform the needed operation through the stateless operations API (list/insert/update/delete) rather than raw session access","Switch the execution mode to managed sessions if you genuinely need a Mutiny.Session"],"exampleFix":"// before\nUni<Mutiny.Session> s = statelessOps.getSession(Entity.class);\n// after\nUni<Mutiny.StatelessSession> ss = statelessOps.getStatelessSession(Entity.class);","handlingStrategy":"validation","validationCode":"if (ops instanceof StatelessReactiveOperations) { throw new IllegalStateException(\"getSession() unavailable in stateless mode; use getStatelessSession()\"); }","typeGuard":"boolean hasManagedSession(Object ops) { return !(ops instanceof StatelessReactiveOperations); }","tryCatchPattern":"try { ops.getSession(Entity.class); } catch (UnsupportedOperationException e) { ops.getStatelessSession(Entity.class); }","preventionTips":["Never request a stateful Session from stateless-mode operations","Gate session-level code paths on the active ORM session mode","Use the stateless operations API directly instead of raw session access"],"tags":["hibernate-reactive","stateless-session","unsupported-operation"],"backgroundTag":"unsupported-operation","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}