{"record":{"id":"e3a290c5bd7c4fce","repo":"prestodb/presto","slug":"learn-must-run-on-a-single-machine-e3a290","errorCode":null,"errorMessage":"LEARN must run on a single machine","messagePattern":"LEARN must run on a single machine","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"presto-ml/src/main/java/com/facebook/presto/ml/LearnStateSerializer.java","lineNumber":34,"sourceCode":"import com.facebook.presto.common.block.Block;\nimport com.facebook.presto.common.block.BlockBuilder;\nimport com.facebook.presto.common.type.BigintType;\nimport com.facebook.presto.common.type.Type;\nimport com.facebook.presto.spi.function.AccumulatorStateSerializer;\n\npublic class LearnStateSerializer\n        implements AccumulatorStateSerializer<LearnState>\n{\n    @Override\n    public Type getSerializedType()\n    {\n        return BigintType.BIGINT;\n    }\n\n    @Override\n    public void serialize(LearnState state, BlockBuilder out)\n    {\n        throw new UnsupportedOperationException(\"LEARN must run on a single machine\");\n    }\n\n    @Override\n    public void deserialize(Block block, int index, LearnState state)\n    {\n        throw new UnsupportedOperationException(\"LEARN must run on a single machine\");\n    }\n}\n","sourceCodeStart":16,"sourceCodeEnd":43,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-ml/src/main/java/com/facebook/presto/ml/LearnStateSerializer.java#L16-L43","documentation":"Unsupported-operation guard in LearnStateSerializer.serialize: LEARN aggregations are non-decomposable and single-machine, so their intermediate state is never serialized across workers. This method existing only to throw makes any attempt to serialize/distribute the training state an error.","triggerScenarios":"Thrown at presto-ml/src/main/java/com/facebook/presto/ml/LearnStateSerializer.java:34 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Keep the LEARN aggregation single-machine so state serialization never occurs","Do not enable distributed/partial aggregation for ML LEARN functions","Retrain on a single node instead of moving state between workers"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}