wuliwong
wuliwong

Reputation: 4368

git, Heroku: pre-receive hook declined

I am in the process of setting up a git repository and attempting to link it to Heroku. When I run the command

git push heroku master

I receive

Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 714 bytes, done.
Total 7 (delta 1), reused 0 (delta 0)

-----> Heroku receiving push

 !     Heroku push rejected due to an unrecognized error.
 !     We've been notified, see http://support.heroku.com if the problem persists.


To [email protected]:morning-stream-3712.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:morning-stream-3712.git'

How can I get my application pushed to Heroku?

Upvotes: 65

Views: 168772

Answers (26)

Sanjay
Sanjay

Reputation: 1007

This can happen if you have copied project from github and have multiple lock files

Best way is to remove lock files

yarn.lock and package-lock.json

then push the changes

git add . 
git commit -m "deleted locks"
git push origin master
heroku push master

Upvotes: 0

Fillype Farias
Fillype Farias

Reputation: 660

For me it solved by this command:

git push heroku master --force

or

git push heroku your_branch_name:master --force

Upvotes: 0

SamuraiNinjaRobot
SamuraiNinjaRobot

Reputation: 51

My issue is that there was one file which I did not add in my previous git commit. The problem was fixed after I added that last file, and pushed another commit.

When I checked the logs, it showed this error:

remote: -----> Build
remote:        Running build
remote:        
remote:        > [email protected] build
remote:        > react-scripts build
remote:        
remote:        Creating an optimized production build...
remote:        Failed to compile.
remote:        
remote:        SassError: File to import not found or unreadable: ../../designUtils/fontDesign.
remote:                on line 2 of src/components/studentCard/StudentCard.scss
remote:        >> @import '../../designUtils/fontDesign.js';
remote:        
remote:           ^
remote:        
remote:        
remote: 
remote: -----> Build failed

This shows that Heroku was not able to find the imported file 'designUtils/fontDesign.js'

This is because I used the command git commit -am 'latest changes' instead of using the commands git add., then git status to check if everything was added properly, and then git commit -m 'latest changes'

Upvotes: 1

Md Pervej Hossain
Md Pervej Hossain

Reputation: 15

The steps which work for me

1: I just remove package-lock.json and yarn.lock 2: user npm install command 3: then push the changes to the github 4: use "git push heroku main" command.

to know more you can visit the below links enter link description here

Upvotes: 0

MD. Thuaha Hadi
MD. Thuaha Hadi

Reputation: 117

First, disable collectstatic:

heroku config:set DISABLE_COLLECTSTATIC=1

Then run:

git push heroku master

For more details and full steps, check here.

Upvotes: 8

Henry Kc
Henry Kc

Reputation: 11

I decided to read the logs line by line. Below is part of the error logs:

remote:        > [email protected] build /tmp/build_c37edf59
remote:        > react-scripts build
remote:        
remote:        Creating an optimized production build...
remote:        Failed to compile.
remote:        
remote:        Cannot read property 'toLowerCase' of undefined
remote:        CompileError: Begins at CSS selector .Styles_hone__1Uuf2
remote:        
remote:        
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 1
remote: npm ERR! [email protected] build: `react-scripts build`
remote: npm ERR! Exit status 1
...
remote: !       Push rejected to gbtstructurals.
remote: 
To https://git.heroku.com/gbtstructurals.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/gbtstructurals.git'

From where the error started, "npm ERR! code ELIFECYCLE" I read up and I found the actual cause of the error. It was a CSS rule. I first removed the rule and it built. Then I checked my declarations and found out I was contradicting myself.

Upvotes: 1

Jeff L
Jeff L

Reputation: 141

If you have an error in your css this error can also show up.

In one of my media queries I put

@media screen adn (min-width: 1000px) {

Instead of the "and" which gave me this error.

A good indicator that this may be the case is if you get an error that contains the message

"Tasks: TOP => assets:precompile ... Precompiling assets failed" 

That was my first clue to look in my css.

Upvotes: 1

Fastersixth
Fastersixth

Reputation: 123

I had this problem (same error with Heroku):

To https://git.heroku.com/myapp.git
 ! [remote rejected]   master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/myapp.git'

The mistake I made some changes to my code and removed some parameters, apparently I missed a simple comma (,) on a line. This caused a build error. Which was not visible in the console upon pushing, only the "pre-receive hook declined" error.

SOLUTION I fixed the comma issue, rebuild and pushed to Heroku and now it works.

Upvotes: 1

cfarina512
cfarina512

Reputation: 15

My issue was I forgot to bundle install before pushing.

Upvotes: 0

Richard Steel
Richard Steel

Reputation: 1

I had a similar issue with a recent application after running:

git push heroku master

The error:

remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to stormy-escarpment-13653.
remote:
To https://git.heroku.com/stormy-escarpment-13653.git
 ! [remote rejected] master -> master (pre-receive hook declined)

The problem was that I was in the wrong directory when I ran the command. I needed to be in the root of the application. So I ran a git rm --cached <app_name>, to clean up and the ran again and it worked as expected.

Upvotes: 0

Tobija Fischer
Tobija Fischer

Reputation: 264

Checking you config vars (in heroku) may be a good idea.

I had the same error message, when I created a pipeline for my app and wanted to push to the newly created staging app. It didn't work because the config vars I had previously set were not transferred to the new staging app (obviously). After I added the variables once more, pushing to heroku git worked flawlessly again.

Upvotes: 0

Maisum Abbas
Maisum Abbas

Reputation: 359

In case if this needs anyone in future even though I am a beginner and doesn't know much about Heroku, you may have requested a version in runtime.txt file which the stack doesn't support.

python-3.8.2 to python-3.8.10

Changing from python-3.8.2 to python-3.8.10 helped me solved it. You may see the supported stacks here: https://devcenter.heroku.com/articles/python-support

Upvotes: 1

Sanjay Makwana
Sanjay Makwana

Reputation: 19

you need to mention the language in the root directory

how I fixed with

my python flask does not mention the requirments.text

Heroku detect the

Using buildpack: heroku/python
remote: -----> Python app detected


enter image description here

Upvotes: -1

rubal islam
rubal islam

Reputation: 359

Deleting package-lock.json solved it for me

Upvotes: 14

Manolis Zaimakis
Manolis Zaimakis

Reputation: 1

In my case I had an npm script called "build" that had the as value npm run build --prefix client.

Heroku automatically executes the npm run build command and it couldn't build my React app. Probably because Heroku didn't install react-scripts module.

So I renamed the command to build-client and now I can push the changes to Heroku.

Upvotes: 0

Alexander Seeto
Alexander Seeto

Reputation: 36

Came across this same error when deploying a node app, but resolved with these two steps and thought I'd share in case anyone else runs into the same issues.

  1. Make sure you aren't committing node_modules since heroku installs dependencies from package.json on push. Try adding node_modules/ to your .gitignore to ensure you don't accidentally commit it
  2. Heroku uses Node v12 which node-sass 4.10.0 will fail to build with. Try increasing node-sass version by adding the following. This allowed it to build successfully for me:
  "devDependencies": {
    "node-sass": "^4.12.0"
  }

Upvotes: 1

Rajat Verma
Rajat Verma

Reputation: 171

Make sure that you are using either npm or yarn.lock file-

Two different lockfiles found: package-lock.json and yarn.lock Both npm and yarn have created lockfiles for this application, but only one can be used to install dependencies.

After deleting yarn.lock and pushing the code again to git, my issue resolved.

Upvotes: 17

Sandip Guchait
Sandip Guchait

Reputation: 149

Try Updating Node/php or any engines to latest version and then deploy again it will work for sure.

Upvotes: -1

yehyatt
yehyatt

Reputation: 2414

For me it was an unused import in java app , removed the unused import and everything built fine.

Upvotes: 0

barlop
barlop

Reputation: 13743

I had this with a sinatra application. (Heroku does support Sinatra).

The instructions on the heroku blog post were incomplete

https://blog.heroku.com/32_deploy_merb_sinatra_or_any_rack_app_to_heroku

My program ran fine locally but I got that error when trying to push to heroku.

The heroku blogpost didn't include the need to make a gemfile and do bundle install. The program was running locally fine, but to make it work on heroku it needed a Gemfile and bundle install on it.

this link here https://teamtreehouse.com/community/how-can-i-make-my-sinatra-app-public mentioned that I needed a Gemfile, and mentioned the contents of the Gemfile. And then to do bundle install. Then once that is done, then follow the instructions on that heroku blog post, of making the program file, and the config.ru and the git repo and doing heroku create (which also creates the remote), then git push heroku master.

i.e.

Gemfile as mentioned at treehouse link

# define our source to look for gems
source "http://rubygems.org/"

# declare the sinatra dependency
gem "sinatra" 

And bundle install to install that Gemfile.

bundle install

hello.rb (as mentioned on heroku blogpost)

require 'rubygems'
require 'sinatra'

get '/' do
  "Hello from Sinatra on Heroku!"
end

config.ru

require './hello'
run Sinatra::Application

git

$ git init
Initialized empty Git repository in /Users/adam/hello/.git/
$ git add .
$ git commit -m "sinatra and heroku, two great tastes"
[master (root-commit)]: created 93a9e6d: "sinatra and heroku, two great tastes"
 2 files changed, 9 insertions(+), 0 deletions(-)
 create mode 100644 config.ru
 create mode 100644 hello.rb

heroku create

$ heroku create
Created http://severe-spring-77.heroku.com/ | [email protected]:severe-spring-77.git
Git remote heroku added

the push to heroku

$ git push heroku master
Counting objects: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 385 bytes, done.
Total 4 (delta 0), reused 0 (delta 0)

-----> Heroku receiving push
-----> Verifying repository integrity... done, looks like a Rack app.
       Compiled slug size is 0.1MB
-----> Launching....... done
       App deployed to Heroku

To [email protected]:severe-spring-77.git
 * [new branch]      master -> master

Upvotes: 0

Bhagvat Lande
Bhagvat Lande

Reputation: 1480

i thought , this will not be the error occured due to any app , or code changes. i have same problem now this happen due to the following reason:

  • 1) i have code on bitbucket/git i push the code to repository (this repo is linked with the heroku app,meanse changes to this will reflects on heroku)
  • 2)after pushing code to repo , i am trying to push code on heroku with "git push heroku master" but due to some reason i abort this command, thats why code is not pushed to heroku

  • 3)then i am agian triyng to push code to heroku it says same error
    as above

  • 4) the solution for this is "just pull yours last commited code" and push the changes to heroku ..thats it thanks

Upvotes: 0

Mon
Mon

Reputation: 86

A little late to the game, one of my issues was I had an outdated sshkey. Just need to update that in the settings.

Another thing was I was pushing Python Django CMS, and it was running python manage.py collectstatic during deploy and it was failing. So make sure you check the log heroku logs --tail. That gave me another hint to turn off collectstatic, it event tells you what to type to turn it off.

Upvotes: 1

bee
bee

Reputation: 1623

Another issue could be that in a production environment, you can't use sqlite3, the default database when you make a rails app.

In order to fix this, just change the database your rails app uses to Postgres. This can easily be accomplished by editing your Gemfile

From your Gemfile, remove:

gem sqlite3;

and add the following:

group :development, :test do
  gem 'sqlite3'
end

group :production do
  gem 'pg'
end

Upvotes: 4

Avi Alima
Avi Alima

Reputation: 51

I faced the same problem:

! [remote rejected] vX.X.XX -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:[application-name]'

I realized that my heroku application Stack is 'cedar-10' and was deprecated from 04/11/2014 and disabled from 04/11/2015 (Cedar-14 is now Generally Available).

The solution was to upgrade the heroku application Stack following the guide:

Upgrading the production app to Cedar-14

Upvotes: 5

user1115538
user1115538

Reputation:

I had the same problem but with a Django app, it turned out that pip wasn't able to download/install one of the dependencies of the requirements.txt file (it was eyeD3)

Upvotes: 1

manojlds
manojlds

Reputation: 301037

Make sure you are pushing a repo that contains a proper supported app ( Rails, Django etc.) and you are not just pushing some random repo to test it out.

Newbie in Heroku: Error when push my app to Heroku

If that is not the case and you are pushing what you think is a valid app, contact Heroku support and they will fix it for you.

Upvotes: 43

Related Questions