{"record":{"id":"f75bee7da2920f15","repo":"quarkusio/quarkus","slug":"unrecognized-update-policy-updatepolicy-for-r","errorCode":null,"errorMessage":"Unrecognized update policy '${updatePolicy}' for repository ${repoId}","messagePattern":"Unrecognized update policy '(.+?)' for repository (.+?)","errorType":"validation","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/client/maven/MavenRegistryClientFactory.java","lineNumber":470,"sourceCode":"            // we are going use it\n            for (RemoteRepository repo : configuredRepos) {\n                if (repo.getUrl().equals(repoUrl)) {\n                    return Collections.emptyList();\n                }\n            }\n        }\n\n        final RemoteRepository.Builder repoBuilder = new RemoteRepository.Builder(repoId, \"default\", repoUrl);\n\n        final String updatePolicy = config.getUpdatePolicy();\n        if (updatePolicy != null) {\n            if (updatePolicy.equalsIgnoreCase(RepositoryPolicy.UPDATE_POLICY_DAILY)\n                    || updatePolicy.equalsIgnoreCase(RepositoryPolicy.UPDATE_POLICY_ALWAYS)\n                    || updatePolicy.equalsIgnoreCase(RepositoryPolicy.UPDATE_POLICY_NEVER)\n                    || updatePolicy.startsWith(RepositoryPolicy.UPDATE_POLICY_INTERVAL)) {\n                repoBuilder.setPolicy(new RepositoryPolicy(true, updatePolicy, RepositoryPolicy.CHECKSUM_POLICY_WARN));\n            } else {\n                throw new IllegalStateException(\"Unrecognized update policy '\" + updatePolicy + \"' for repository \" + repoId);\n            }\n        }\n\n        return List.of(repoBuilder.build());\n    }\n\n    private static String getDescriptorResolutionFailureFromMirrorMessage(RegistryConfig config,\n            MavenArtifactResolver resolver, BootstrapMavenException e, List<RemoteRepository> originalRegistryRepos) {\n        final StringBuilder buf = new StringBuilder();\n        buf.append(getDescriptorResolutionFailureMessage(config, resolver, e));\n        buf.append(\" having applied the mirrors and/or proxies from the Maven settings to \");\n        appendRepoInfo(buf, originalRegistryRepos.get(0));\n        for (int i = 1; i < originalRegistryRepos.size(); ++i) {\n            buf.append(\", \");\n            appendRepoInfo(buf, originalRegistryRepos.get(i));\n        }\n        buf.append(\". Re-trying with the original \").append(config.getId()).append(\" repository configuration.\");\n        return buf.toString();","sourceCodeStart":452,"sourceCodeEnd":488,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/independent-projects/tools/registry-client/src/main/java/io/quarkus/registry/client/maven/MavenRegistryClientFactory.java#L452-L488","documentation":"Thrown when a registry repository's configured update policy is not one of the recognized Maven policies: daily, always, never, or interval:<minutes>. The policy string is passed verbatim into a RepositoryPolicy, so an invalid value is rejected before resolution starts.","triggerScenarios":"determineRegistryRepos (via registryRepos) building a RemoteRepository for a registry whose config sets an updatePolicy string that fails equalsIgnoreCase checks against DAILY/ALWAYS/NEVER and does not start with 'interval:'.","commonSituations":"Typo like `dailyly` or `day`; capitalization variants are fine (case-insensitive) but `weekly`/`monthly` are NOT valid Maven policies; copying npm-style `intervals` wording.","solutions":["Change the update policy to one of `daily`, `always`, `never`, or `interval:<minutes>` (e.g. `interval:60`)","Remove the updatePolicy line entirely to use the default (daily)","Check for typos and that the interval form uses the `interval:` prefix followed by an integer"],"exampleFix":"# before\nupdate-policy: weekly\n# after\nupdate-policy: interval:120","handlingStrategy":"validation","validationCode":"String p = registry.getUpdatePolicy();\nif (p != null && !p.equalsIgnoreCase(\"daily\") && !p.equalsIgnoreCase(\"always\") && !p.equalsIgnoreCase(\"never\") && !p.startsWith(\"interval\")) {\n    throw new IllegalArgumentException(\"Invalid update policy \" + p + \"; use daily|always|never|interval:<minutes>\");\n}","typeGuard":null,"tryCatchPattern":"try { client = factory.buildRegistryClient(cfg); } catch (IllegalStateException e) { if (e.getMessage().startsWith(\"Unrecognized update policy\")) { fixUpdatePolicy(cfg); } else throw e; }","preventionTips":["Only use Maven-standard policy values","Remember `weekly`/`monthly` are invalid — use interval:<minutes>","Lint registry repo options against the RepositoryPolicy grammar"],"tags":["configuration","maven","update-policy"],"backgroundTag":"invalid-update-policy","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}