gcloud app deploy triggers weird error: Conflicting SHA1 sum for file

Viewed 624

I am trying to get a simple HelloWorld! deployment setup to AppEngine. I'm working with another friend/developer, who on his machine was able to get this simple gcloud app deploy to work successfully, but on my machine it is not working (classic works on my machine). I'm wondering if it's a permission issue with our buckets, but everything between me and my friend's AppEngine accounts are mirrored. I'm at my wit's and so any help is appreciated.

What I will describe to follow seems to be a rare find on the internet so I'm hopeful that someone knowledgeable can help.

  • I have the GoogleCloudSDK installed and authenticated.
  • I have a simple directory named "default" with an app.yaml and an index.html

When running the gcloud app deploy default command I receive the following error:

Beginning deployment of service [default]...
╔═════════════════════════════════════════════╗
╠═ Uploading 2 files to Google Cloud Storage ═╣
╚═════════════════════════════════════════════╝
File upload done.
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [3] The following errors occurred while copying files to App Engine:
File https://storage.googleapis.com/staging.xxxxxxx.appspot.com/59add2715212c2a5fa68f05ead6ea6a307d279b5 failed with: Conflicting SHA1 sum for file. Expected "90d147b8_dd2137ab_8ec7f19f_c0891006_6585d3de" but received "59add271_5212c2a5_fa68f05e_ad6ea6a3_07d279b5".

Details: [
  [
    {
      "@type": "type.googleapis.com/google.rpc.ResourceInfo",
      "description": "Conflicting SHA1 sum for file. Expected \"90d147b8_dd2137ab_8ec7f19f_c0891006_6585d3de\" but received \"59add271_5212c2a5_fa68f05e_ad6ea6a3_07d279b5\".",
      "resourceName": "https://storage.googleapis.com/staging.xxxxxxx.appspot.com/59add2715212c2a5fa68f05ead6ea6a307d279b5",
      "resourceType": "file"
    }
  ]
]

What I have tried

  • Deleting all of the files within the bucket.
  • Deleting the entire bucket at staging.xxxxxxx.appspot.com.
  • Uninstalling and reinstalling the SDK from https://cloud.google.com/sdk/. I'm on Windows 10 64bit.
  • Re-running gcloud init and going through those instructions.
  • Re-running gcloud auth application-default login and authenticating with my Google account.

Here are my example files

app.yaml

runtime: nodejs10

handlers:
- url: /
  static_files: index.html
  upload: index.html

index.html

<html>
  <head>
    <title>Test Title</title>
  </head>
  <body>
    <p>
      Hello from the static index.html file.
    </p>
  </body>
</html>
2 Answers

Summary of the issue: Different size of the text files on the Windows local machine file system and in the Google Cloud Storage - failed SHA checksum compare.

Possible solutions:

  1. Fix files locally before deploying app using Dos2Unix using Cigwin,

or deploy from Linux:

  1. Upload deployment files to Cloud Shell and deploy from there.
  2. Upload deployment files to Linux VM Instance.

For summary of Windows and Unix interoperability, check documentation

Related