Home > Net >  Heroku push rejected because gems fail to install
Heroku push rejected because gems fail to install

Time:05-18

I need some help with this small app I am trying to push to heroku after doing

git add .

git commit -m "message here"

git push heroku master

I get the following error message:

Enumerating objects: 174, done.

Counting objects: 100% (174/174), done.                                                                                 
Delta compression using up to 12 threads                                                                                
Compressing objects: 100% (156/156), done.                                                                              
Writing objects: 100% (174/174), 38.41 KiB | 2.40 MiB/s, done.                                                          
Total 174 (delta 62), reused 36 (delta 3)                                                                               
remote: Compressing source files... done.                                                                               
remote: Building source:                                                                                                
remote:                                                                                                                 
remote: -----> Building on the Heroku-20 stack                                                                          
remote: -----> Determining which buildpack to use for this app                                                          
remote: -----> Ruby app detected                                                                                        
remote: -----> Installing bundler 2.3.10                                                                                
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock                                                        
remote: -----> Compiling Ruby/Rails                                                                                     
remote: -----> Using Ruby version: ruby-2.6.6                                                                           
remote: -----> Installing dependencies using bundler 2.3.10                                                             
remote:        Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4                                                                                         
remote:        /usr/bin/env: ‘ruby\r’: No such file or directory                                                        
remote:        Bundler Output: /usr/bin/env: ‘ruby\r’: No such file or directory                                        
remote:                                                                                                                 
remote:  !                                                                                                              
remote:  !     Failed to install gems via Bundler.                                                                      
remote:  !                                                                                                              
remote:  !     Push rejected, failed to compile Ruby app.                                                               
remote:                                                                                                                 
remote:  !     Push failed                                                                                              
remote: Verifying deploy...                                                                                             
remote:                                                                                                                 
remote: !       Push rejected to damp-spire-06287.                                                                      
remote:                                                                                                                 
To https://git.heroku.com/damp-spire-06287.git                                                                           
! [remote rejected] master -> master (pre-receive hook declined)                                                error: failed to push some refs to 'https://git.heroku.com/damp-spire-06287.git

I am not sure if it is an issue with the bundler version or something else but I need any help if possible. I have tried doing

bundle install and bundle update

and the bundle completes without a hitch. I have been stuck for a while and tried replacing the bundle version to no avail. Thanks in advance!

CodePudding user response:

This error is caused because you have incorrect line endings (CRLF vs. LF) in your repo, which is generally caused when you are working/deploying across Windows and Unix-like environments. Mac/Unix/Linux environments -- which Heroku uses -- use a single linefeed (usually denoted \n) character to terminate a line while Windows uses a carriage return/linefeed pair (\r\n).

If your local repo is on a Windows machine you'll need to convert the files in your repo before pushing to Heroku. You can configure Git to handle the auto-conversion so that you have Windows terminators when you checkout on Windows but maintain the repo with just linefeeds.

To set up the automatic conversion:

% git config --global core.autocrlf input

Git also provides a way to refresh your repo to ensure all the line endings are correct. This can cause merge headaches since this can affect every line in some/all files, so you preferably want to do this on a fully up-to-date repo (i.e., no un-pushed changes).

% git add --renormalize .
% git commit -m "Normalize all the line endings"

https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings

  • Related