quarkusio/quarkus · error · UncheckedIOException

An error occurred while processing ${resourceName}

Error message

An error occurred while processing ${resourceName}

What it means

During build, BuildTimeContentProcessor.loadAllBuildTimeTemplates() reads Dev UI static build-time content templates from the classpath by resourceName. If reading a template (or other classpath resource) raises an IOException, it is rethrown as an UncheckedIOException with this message. It signals a corrupted or unreadable Dev UI resource bundled with an extension.

Source

Thrown at extensions/devui/deployment/src/main/java/io/quarkus/devui/deployment/BuildTimeContentProcessor.java:527

                String resourceName = BUILD_TIME_PATH + SLASH + templateName;
                String fileName = e.getFileName();
                // TODO: What if we find more than one ?
                try (InputStream templateStream = cl.getResourceAsStream(resourceName)) {
                    if (templateStream != null) {
                        byte[] templateContent = IoUtil.readBytes(templateStream);
                        // Internal runs on "naked" namespace
                        DevUIContent content = DevUIContent.builder()
                                .fileName(fileName)
                                .template(templateContent)
                                .addData(data)
                                .descriptions(descriptions)
                                .mcpDefaultEnables(mcpDefaultEnabled)
                                .contentTypes(contentTypes)
                                .build();
                        contentPerExtension.add(content);
                    }
                } catch (IOException ioe) {
                    throw new UncheckedIOException("An error occurred while processing " + resourceName, ioe);
                }
            }
            buildTimeContentProducer.produce(new StaticContentBuildItem(
                    StaticContentBuildItem.DEV_UI, contentPerExtension));
        }
    }

    /**
     * Creates json data that is available in Javascript
     */
    @BuildStep(onlyIf = IsLocalDevelopment.class)
    void createBuildTimeData(BuildProducer<BuildTimeConstBuildItem> buildTimeConstProducer,
            BuildProducer<ThemeVarsBuildItem> themeVarsProducer,
            CurateOutcomeBuildItem curateOutcomeBuildItem,
            List<InternalPageBuildItem> internalPages,
            ExtensionsBuildItem extensionsBuildItem,
            NonApplicationRootPathBuildItem nonApplicationRootPathBuildItem,
            LaunchModeBuildItem launchModeBuildItem,

View on GitHub (pinned to e1c734241f)

Solutions

  1. Clear the corrupted dependency: delete the relevant extension artifact from ~/.m2/repository and rebuild with ./mvnw install -f extensions/<name>/
  2. Run a clean build (./mvnw clean install -Dquickly) to regenerate packaged Dev UI assets
  3. Check the cause (ioe) for the exact resource path and containing JAR to identify the broken artifact
  4. Update/rebuild the extension module that owns the failing resourceName
Defensive patterns

Strategy: try-catch

Try / catch

try {
    loadAllBuildTimeTemplates(...);
} catch (UncheckedIOException e) {
    log.error("Broken Dev UI resource: " + e.getMessage() + " — rebuild the owning extension JAR", e);
    // e.g. delete artifact from ~/.m2 and rebuild
}

Prevention

When it happens

Trigger: An IOException occurs while loading a Dev UI build-time template/resource during augmentation — e.g. the resource exists in the resource listing but cannot be opened from a broken/partially-built JAR or damaged local Maven repository entry.

Common situations: Corrupted artifacts in ~/.m2/repository after an interrupted build; a fat/duplicate classpath entry shadowing resources; building inside a container with a stale dependency snapshot; newly added extension whose Dev UI assets failed to package.

Related errors


AI-assisted analysis of quarkusio/quarkus@e1c734241f (2026-09-05). Data as JSON: /api/errors/387793f5deee412f. Report an issue: GitHub.