{"record":{"id":"126a3a6318e78c30","repo":"jdx/mise","slug":"formula-uses-feature-which-mise-s-source-bui","errorCode":null,"errorMessage":"formula uses `#{feature}`, which mise's source-build shim does not support","messagePattern":"formula uses `#(.+?)`, which mise's source-build shim does not support","errorType":"exception","errorClass":"ShimUnsupportedError","httpStatus":null,"severity":"error","filePath":"src/system/packages/brew/shim.rb","lineNumber":63,"sourceCode":"\ndef ohai(*args)\n  $stdout.puts \"==> #{args.join(\" \")}\"\n  $stdout.flush\nend\n\ndef opoo(message)\n  $stderr.puts \"Warning: #{message}\"\nend\n\ndef odie(message)\n  $stderr.puts \"Error: #{message}\"\n  exit 1\nend\n\nclass ShimUnsupportedError < StandardError; end\n\ndef shim_unsupported!(feature)\n  raise ShimUnsupportedError,\n        \"formula uses `#{feature}`, which mise's source-build shim does not support\"\nend\n\nmodule MiseDownload\n  module_function\n\n  # download with redirects into the cache, verify, return the path\n  def fetch(url, sha256, context)\n    raise \"#{context}: missing sha256\" if sha256.to_s.strip.empty?\n    sha256 = sha256.to_s.strip.downcase\n    raise \"#{context}: malformed sha256\" unless sha256.match?(/\\A[0-9a-f]{64}\\z/)\n\n    MISE_BREW_CACHE.mkpath\n    dest = MISE_BREW_CACHE + \"#{sha256}--#{File.basename(URI(url).path)}\"\n    unless dest.file? && Digest::SHA256.file(dest).hexdigest == sha256\n      ohai \"Downloading #{url}\"\n      tmp = Pathname.new(\"#{dest}.incomplete\")\n      URI.open(url, \"rb\", redirect: true) do |remote|","sourceCodeStart":45,"sourceCodeEnd":81,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/system/packages/brew/shim.rb#L45-L81","documentation":"After confirming the remote task path stays inside the Git checkout, mise checks the file type: only regular files and directories are accepted. Anything else (symlink, socket, fifo, device) is rejected with this error.","triggerScenarios":"validate_remote_git_path (called by resolve_git_url_to_path / prepare_remote_path) encounters a path in the remote checkout whose symlink_metadata type is neither file nor directory — typically a dangling or special symlink, fifo, or device node.","commonSituations":"A remote task repository containing Unix special files or dangling symlinks; a URL path that resolves through a broken symlink; checking out on a filesystem that materializes special files oddly.","solutions":["Point the remote task URL at a regular file or directory in the repo.","Remove dangling/special symlinks from the remote task repository and re-resolve.","Clear mise's remote task cache and retry after fixing the repo."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Ensure the remote path is a regular file or directory in the repo\np=$(git rev-parse --show-toplevel)/tasks/build.sh\n[ -f \"$p\" ] && [ ! -L \"$p\" ] || echo \"path must be a regular file\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep remote task repositories free of special files and dangling symlinks.","Clear mise's remote task cache after fixing the upstream repo.","Verify the target path with `git ls-tree` before referencing it."],"tags":["remote-tasks","git","file-type","symlink"],"backgroundTag":"path-is-not-a-regular-file","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}