ruby/rubygems · error · Bundler::GemfileError
4
4
Error message
`#{gem_name}` is not specified in #{gemfile_path} so it could not be removed. What it means
Error "`#{gem_name}` is not specified in #{gemfile_path} so it could not be removed." thrown in ruby/rubygems.
Source
Thrown at lib/bundler/injector.rb:172
# check for errors
# including extra gems being removed
# or some gems not being removed
# and return the actual removed deps
cross_check_for_errors(gemfile_path, builder.dependencies, removed_deps, initial_gemfile)
end
# @param [Dsl] builder Dsl object of current Gemfile.
# @param [Array] gems Array of names of gems to be removed.
# @param [Pathname] gemfile_path Path of the Gemfile.
# @return [Array] Array of removed dependencies.
def remove_gems_from_dependencies(builder, gems, gemfile_path)
removed_deps = []
gems.each do |gem_name|
deleted_dep = builder.dependencies.find {|d| d.name == gem_name }
if deleted_dep.nil?
raise GemfileError, "`#{gem_name}` is not specified in #{gemfile_path} so it could not be removed."
end
builder.dependencies.delete(deleted_dep)
removed_deps << deleted_dep
end
removed_deps
end
# @param [Array] gems Array of names of gems to be removed.
# @param [Pathname] gemfile_path The Gemfile from which to remove dependencies.
def remove_gems_from_gemfile(gems, gemfile_path)
patterns = /gem\s+(['"])#{Regexp.union(gems)}\1|gem\s*\((['"])#{Regexp.union(gems)}\2.*\)/
new_gemfile = []
multiline_removal = false
File.readlines(gemfile_path).each do |line|
match_data = line.match(patterns)View on GitHub (pinned to 86cbb817a3)
When it happens
Trigger: Thrown at lib/bundler/injector.rb:172 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ruby/rubygems@86cbb817a3 (2026-08-23).
Data as JSON: /api/errors/573f9b0cfbf71fef.
Report an issue: GitHub.