{"record":{"id":"1e872ec3d3f1aa41","repo":"apple/pkl","slug":"missingprojectinpackagecommand","errorCode":"missingProjectInPackageCommand","errorMessage":"ErrorMessages.create(\"missingProjectInPackageCommand\", proj.projectDir, projectDir)","messagePattern":"ErrorMessages\\.create\\(\"missingProjectInPackageCommand\", proj\\.projectDir, projectDir\\)","errorType":"error_code","errorClass":"CliException","httpStatus":null,"severity":"error","filePath":"pkl-cli/src/main/kotlin/org/pkl/cli/CliProjectPackager.kt","lineNumber":74,"sourceCode":"\n  override fun doRun() {\n    val projects = buildList {\n      for (projectFile in normalizedProjectFiles) {\n        val project = loadProject(projectFile)\n        project.`package`\n          ?: throw CliException(\n            ErrorMessages.create(\"noPackageDefinedByProject\", project.projectFileUri)\n          )\n        runApiTests(project)\n        add(project)\n      }\n    }\n    // Require that all local projects are included\n    projects.forEach { proj ->\n      proj.dependencies.localDependencies().values.forEach { localDep ->\n        val projectDir = Path.of(localDep.projectFileUri()).parent\n        if (projects.none { it.projectDir == projectDir }) {\n          throw CliException(\n            ErrorMessages.create(\"missingProjectInPackageCommand\", proj.projectDir, projectDir)\n          )\n        }\n      }\n    }\n    ProjectPackager(\n        projects,\n        cliOptions.normalizedWorkingDir,\n        outputPath,\n        stackFrameTransformer,\n        cliOptions.color?.hasColor() ?: false,\n        securityManager,\n        httpClient,\n        skipPublishCheck,\n        install,\n        moduleCacheDir,\n        consoleWriter,\n      )","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/apple/pkl/blob/f3efcbfc9b60d30053b0536d664948d7aa1b8673/pkl-cli/src/main/kotlin/org/pkl/cli/CliProjectPackager.kt#L56-L92","documentation":"Thrown by CliProjectPackager.doRun as a consistency check: every local project dependency referenced by any project being packaged must itself be included in the same `pkl project package` invocation. The code walks each project's localDependencies(), computes each dependency's project directory, and throws missingProjectInPackageCommand (with the depending project's dir and the missing dep's dir) if no packaged project matches that directory.","triggerScenarios":"Running `pkl project package` with only some of the interdependent local projects listed as arguments, where one packaged project's localDependencies points at a project directory not among the arguments.","commonSituations":"Packaging a single project out of a monorepo whose projects depend on each other; forgetting to list a sibling project directory on the command line; a newly added local dependency not yet reflected in your packaging script.","solutions":["Pass ALL mutually dependent local project directories (or their PklProject files) to `pkl project package`","Add the missing dependency project to your packaging script/CI command","If the dependency should be external instead of local, adjust the dependency declarations so it is no longer a local project dependency"],"exampleFix":"// before\npkl project package ./app\n// after (app depends on ./lib)\npkl project package ./app ./lib","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always package the full set of interdependent local projects","Keep one packaging entry point (script/Makefile) listing all project dirs"],"tags":["cli","pkl","packaging","dependencies"],"backgroundTag":"missing-dependency","analyzedSha":"f3efcbfc9b60d30053b0536d664948d7aa1b8673","analyzedAt":"2026-09-08T13:10:45.570Z","contentChangedAt":"2026-09-08T13:10:45.570Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}