{"record":{"id":"f3d389bd0792b2e0","repo":"CanineHQ/canine","slug":"pack-build-failed-e-message","errorCode":null,"errorMessage":"Pack build failed: #{e.message}","messagePattern":"Pack build failed: #(.+?)","errorType":"exception","errorClass":"Projects::BuildJob::BuildFailure","httpStatus":null,"severity":"error","filePath":"app/services/builders/frontends/buildpack_builder.rb","lineNumber":81,"sourceCode":"    # Add publish flag if supported by driver\n    command << \"--publish\" if publish_during_build?\n\n    # Add pull policy to always pull latest builder\n    command += [ \"--pull-policy\", \"always\" ]\n\n    # Trust builder (required for some builders)\n    command << \"--trust-builder\"\n\n    command += [ \"--report-output-dir\", report_dir ]\n\n    command\n  end\n\n  def run_pack_command(command)\n    runner = Cli::RunAndLog.new(build, killable: build)\n    runner.call(Array(command))\n  rescue Cli::CommandFailedError => e\n    raise Projects::BuildJob::BuildFailure, \"Pack build failed: #{e.message}\"\n  end\n\n  def publish_during_build?\n    true\n  end\n\n  def parse_digest_from_report(report_dir)\n    report_file = File.join(report_dir, \"report.toml\")\n    return nil unless File.exist?(report_file)\n\n    content = File.read(report_file)\n\n    # Prefer registry digest (present when --publish is used), fall back to local image-id\n    digest_match = content.match(/digest\\s*=\\s*\"([^\"]+)\"/)\n    return digest_match.captures.first if digest_match\n\n    id_match = content.match(/image-id\\s*=\\s*\"([^\"]+)\"/)\n    return nil unless id_match","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/CanineHQ/canine/blob/ba4ee3968d8513ee27d8583fbd3e854a8dd053f3/app/services/builders/frontends/buildpack_builder.rb#L63-L99","documentation":"Error \"Pack build failed: #{e.message}\" thrown in CanineHQ/canine.","triggerScenarios":"Thrown at app/services/builders/frontends/buildpack_builder.rb:81 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ba4ee3968d8513ee27d8583fbd3e854a8dd053f3","analyzedAt":"2026-08-23T17:49:27.834Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}