{"record":{"id":"a9184b863bb8a13e","repo":"flowable/flowable-engine","slug":"failed-to-create-property-source","errorCode":null,"errorMessage":"Failed to create property source","messagePattern":"Failed to create property source","errorType":"exception","errorClass":"UncheckedIOException","httpStatus":null,"severity":"critical","filePath":"modules/flowable-app-rest/src/main/java/org/flowable/rest/app/properties/BackwardsCompatiblePropertiesLoader.java","lineNumber":80,"sourceCode":"        MutablePropertySources propertySources = environment.getPropertySources();\n        for (String location : DEPRECATED_LOCATIONS) {\n            try {\n                Resource resource = resourceLoader.getResource(location);\n                PropertySource<?> propertySource = DEFAULT_PROPERTY_SOURCE_FACTORY.createPropertySource(null, new EncodedResource(resource));\n                if (propertySources.contains(propertySource.getName())) {\n                    propertySources.replace(propertySource.getName(), propertySource);\n                } else {\n                    propertySources.addLast(propertySource);\n                }\n                logger.warn(\"Using deprecated property source {} please switch to using Spring Boot externalized configuration\", propertySource);\n            } catch (IllegalArgumentException | FileNotFoundException | UnknownHostException ex) {\n                // We are always ignoring the deprecated resources. This is done in the same way as in the Spring ConfigurationClassParsers\n                // Placeholders not resolvable or resource not found when trying to open it\n                if (logger.isInfoEnabled()) {\n                    logger.info(\"Properties location [{}] not resolvable: {}\", location, ex.getMessage());\n                }\n            } catch (IOException ex) {\n                throw new UncheckedIOException(\"Failed to create property source\", ex);\n            }\n        }\n    }\n\n    @Override\n    public int getOrder() {\n        return order;\n    }\n}\n","sourceCodeStart":62,"sourceCodeEnd":90,"githubUrl":"https://github.com/flowable/flowable-engine/blob/d6d39ce1c69ff244f2d9dc6af756a9b95e865586/modules/flowable-app-rest/src/main/java/org/flowable/rest/app/properties/BackwardsCompatiblePropertiesLoader.java#L62-L90","documentation":"BackwardsCompatiblePropertiesLoader.postProcessEnvironment wraps an IOException from reading a configured properties location and rethrows it as UncheckedIOException(\"Failed to create property source\", ex). While unresolvable/missing locations are logged and skipped, an IOException while a resource was actually opened (read/parse failure) is treated as fatal, aborting Spring Boot startup in the environment-post-processing phase.","triggerScenarios":"spring.config.location / flowable.properties location pointing at a resource that exists but cannot be read: permission problems, malformed stream, IO error mid-read, or a broken file handle when the loader builds the PropertySource.","commonSituations":"Deployments where the properties file has wrong file permissions or is a directory; Docker volumes mounting an unreadable path; corrupted or mid-write properties file at boot.","solutions":["Inspect the cause (UncheckedIOException.getCause()) to find the exact path and IOException, then fix file permissions or the file itself","Verify the configured properties location resolves to a readable file from the working directory of the app","Replace corrupted/truncated properties files and re-deploy","If the location is optional, point the configuration at an existing readable resource or remove the location"],"exampleFix":"# before\n--flowable.rest.app.properties-location=file:/etc/flowable/rest.properties  # unreadable\n# after\nchmod 644 /etc/flowable/rest.properties\njava -jar app.jar --flowable.rest.app.properties-location=file:/etc/flowable/rest.properties","handlingStrategy":"try-catch","validationCode":"java.nio.file.Path p = java.nio.file.Path.of(locationPath);\nif (!java.nio.file.Files.isReadable(p)) {\n    throw new IllegalStateException(\"Properties location not readable: \" + p);\n}","typeGuard":null,"tryCatchPattern":"try {\n    SpringApplication.run(App.class, args);\n} catch (UncheckedIOException e) {\n    if (\"Failed to create property source\".equals(e.getMessage())) {\n        logger.error(\"Properties location unreadable: {}\", e.getCause().getMessage(), e);\n    }\n    throw e;\n}","preventionTips":["Verify file permissions and existence of configured properties locations before deployment","Mount Docker volumes with correct read access for the app user","Test Spring Boot startup in an environment mirroring production mounts"],"tags":["spring-boot","io","configuration","startup"],"backgroundTag":"file-read-failed","analyzedSha":"d6d39ce1c69ff244f2d9dc6af756a9b95e865586","analyzedAt":"2026-09-11T06:41:19.413Z","contentChangedAt":"2026-09-11T06:41:19.413Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}