{"record":{"id":"41181d086fc92ed4","repo":"testcontainers/testcontainers-java","slug":"version-is-less-than-1-0-0-or-not-a-semantic-version","errorCode":null,"errorMessage":"Version {} is less than 1.0.0 or not a semantic version.","messagePattern":"Version (.+?) is less than 1\\.0\\.0 or not a semantic version\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"modules/chromadb/src/main/java/org/testcontainers/chromadb/ChromaDBContainer.java","lineNumber":53,"sourceCode":"        withExposedPorts(8000);\n        waitingFor(Wait.forHttp(apiPath));\n    }\n\n    public String getEndpoint() {\n        return \"http://\" + getHost() + \":\" + getFirstMappedPort();\n    }\n\n    private static boolean isVersion2(String version) {\n        if (version.equals(\"latest\")) {\n            return true;\n        }\n\n        ComparableVersion comparableVersion = new ComparableVersion(version);\n        if (comparableVersion.isGreaterThanOrEqualTo(\"1.0.0\")) {\n            return true;\n        }\n\n        log.warn(\"Version {} is less than 1.0.0 or not a semantic version.\", version);\n        return false;\n    }\n}\n","sourceCodeStart":35,"sourceCodeEnd":57,"githubUrl":"https://github.com/testcontainers/testcontainers-java/blob/8e549514e3f01c57d70546fbb8599d138f3903e5/modules/chromadb/src/main/java/org/testcontainers/chromadb/ChromaDBContainer.java#L35-L57","documentation":"ChromaDBContainer.isVersion2 parses the image's version tag with ComparableVersion and returns true only for versions >= 1.0.0 (new Chroma 0.6+ API layout). For pre-1.0.0 or non-semantic version tags it logs this warning and returns false, causing the container to use the legacy API endpoints (api/v1) which will fail against genuinely new images.","triggerScenarios":"Using a ChromaDB image tag that is not a semantic version (e.g. latest, 0.6, dev builds) or a tag below 1.0.0, so the container cannot determine which REST API layout to use and falls back to v1 endpoints.","commonSituations":"Pinning chromadb/chroma:latest in CI and the version probe misparses; using an old 0.4.x image whose API doesn't match either expectation; custom Chroma builds with non-semantic tags.","solutions":["Pin an explicit semantic version, e.g. chromadb/chroma:1.0.0 or 0.5.5, instead of latest","Upgrade the image tag to >= 1.0.0 if you intend to use the v2 API layout","Use DockerImageName parsing-compatible tags (major.minor.patch) so ComparableVersion can compare them","Update testcontainers chromadb module version if your image is new but misclassified"],"exampleFix":"// before\nnew ChromaDBContainer(\"chromadb/chroma:latest\");\n// after\nnew ChromaDBContainer(\"chromadb/chroma:1.0.0\");","handlingStrategy":"validation","validationCode":"String tag = imageName.substring(imageName.lastIndexOf(':') + 1);\nif (!tag.matches(\"\\\\d+\\\\.\\\\d+\\\\.\\\\d+.*\")) throw new IllegalArgumentException(\"Use a semantic version tag for chromadb/chroma, not: \" + tag);","typeGuard":null,"tryCatchPattern":"// warning only — no exception thrown; assert on behavior instead:\nAssert.assertEquals(\"1.0.0\", imageTag); // pin explicitly before container.start()","preventionTips":["Pin explicit semantic version tags (never 'latest') for ChromaDB images","Use tags >= 1.0.0 for the v2 API, < 1.0.0 deliberately for legacy API","Keep the testcontainers chromadb module updated for newer image support","Watch logs for this warning at container construction time"],"tags":["chromadb","versioning","semver","configuration"],"backgroundTag":"invalid-config-value","analyzedSha":"8e549514e3f01c57d70546fbb8599d138f3903e5","analyzedAt":"2026-09-12T14:56:41.227Z","contentChangedAt":"2026-09-12T14:56:41.227Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}