ruby/rubygems · error · Gem::S3URISigner::InstanceProfileError
Unable to fetch AWS metadata from #{uri}: #{response.message
Error message
Unable to fetch AWS metadata from #{uri}: #{response.message} #{response.code} What it means
Error "Unable to fetch AWS metadata from #{uri}: #{response.message} #{response.code}" thrown in ruby/rubygems.
Source
Thrown at lib/rubygems/s3_uri_signer.rb:192
# Expected format: arn:aws:iam::<id>:instance-profile/<role_name>
role_name = iam_info["InstanceProfileArn"].split("/").last
ec2_metadata_request(EC2_IAM_SECURITY_CREDENTIALS + role_name, token: nil)
end
def ec2_metadata_request(url, token:)
request = ec2_iam_request(Gem::URI(url), Gem::Net::HTTP::Get)
response = request.fetch do |req|
if token
req.add_field "X-aws-ec2-metadata-token", token
end
end
case response
when Gem::Net::HTTPOK then
JSON.parse(response.body)
else
raise InstanceProfileError.new("Unable to fetch AWS metadata from #{uri}: #{response.message} #{response.code}")
end
end
def ec2_metadata_token
request = ec2_iam_request(Gem::URI(EC2_IAM_TOKEN), Gem::Net::HTTP::Put)
response = request.fetch do |req|
req.add_field "X-aws-ec2-metadata-token-ttl-seconds", 60
end
case response
when Gem::Net::HTTPOK then
response.body
else
raise InstanceProfileError.new("Unable to fetch AWS metadata from #{uri}: #{response.message} #{response.code}")
end
end
View on GitHub (pinned to 86cbb817a3)
Solutions
- Check that the instance metadata service is reachable from this host
- Verify the instance has an IAM profile attached; otherwise configure explicit s3_source credentials
When it happens
Trigger: Thrown at lib/rubygems/s3_uri_signer.rb:192 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/44aa99e7b2366002.
Report an issue: GitHub.