{"record":{"id":"76e1ec800a4f637e","repo":"prestodb/presto","slug":"could-not-create-spill-path-s-adjust-experimenta","errorCode":null,"errorMessage":"could not create spill path %s; adjust experimental.spiller-spill-path config property or filesystem permissions","messagePattern":"could not create spill path (.+?); adjust experimental\\.spiller-spill-path config property or filesystem permissions","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-main-base/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpillerFactory.java","lineNumber":106,"sourceCode":"            ListeningExecutorService executor,\n            BlockEncodingSerde blockEncodingSerde,\n            SpillerStats spillerStats,\n            List<Path> spillPaths,\n            double maxUsedSpaceThreshold,\n            CompressionCodec spillCompressionCodec,\n            boolean spillEncryptionEnabled)\n    {\n        this.serdeFactory = new PagesSerdeFactory(requireNonNull(blockEncodingSerde, \"blockEncodingSerde is null\"), spillCompressionCodec);\n        this.executor = requireNonNull(executor, \"executor is null\");\n        this.spillerStats = requireNonNull(spillerStats, \"spillerStats can not be null\");\n        requireNonNull(spillPaths, \"spillPaths is null\");\n        this.spillPaths = ImmutableList.copyOf(spillPaths);\n        spillPaths.forEach(path -> {\n            try {\n                createDirectories(path);\n            }\n            catch (IOException e) {\n                throw new IllegalArgumentException(\n                        format(\"could not create spill path %s; adjust experimental.spiller-spill-path config property or filesystem permissions\", path), e);\n            }\n            if (!path.toFile().canWrite()) {\n                throw new IllegalArgumentException(\n                        format(\"spill path %s is not writable; adjust experimental.spiller-spill-path config property or filesystem permissions\", path));\n            }\n        });\n        this.maxUsedSpaceThreshold = maxUsedSpaceThreshold;\n        this.spillEncryptionEnabled = spillEncryptionEnabled;\n        this.roundRobinIndex = 0;\n    }\n\n    @PostConstruct\n    public void cleanupOldSpillFiles()\n    {\n        spillPaths.forEach(FileSingleStreamSpillerFactory::cleanupOldSpillFiles);\n    }\n","sourceCodeStart":88,"sourceCodeEnd":124,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-main-base/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpillerFactory.java#L88-L124","documentation":"Configuration error raised when FileSingleStreamSpillerFactory initializes: none of the configured spill paths could be created. This is a sentinel guard for a server-side setup problem — the query cannot spill memory to disk until the spill path config or filesystem permissions are fixed.","triggerScenarios":"Thrown at presto-main-base/src/main/java/com/facebook/presto/spiller/FileSingleStreamSpillerFactory.java:106 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set experimental.spiller-spill-path to an existing writable directory","Grant write permission on the spill directory to the Presto service user","Create the spill directories on all worker nodes and restart 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"}