When running a deployment via circle-ci we've recently been getting the following error when running the create_application_revision
command:
Unhandled exception
ZIP does not support timestamps before 1980
I couldn't find an existing issue with the repo. We haven't changed any configuration recently. This appears to have only started happening since yesterday, it was the first time we had the error on our builds.
We're running the following versions:
aws-cli/1.11.97 Python/2.7.6 Linux/3.13.0-48-generic botocore/1.5.60
If anyone is able to point us in the right direction that would be greatly appreciated.
Same error for:
aws cloudformation package ...
Uploading to a5902e46b3516ee3f44caf6251079b5f 1846 / 1846.0 (100.00%)
Unable to upload artifact ./../async-handlers/donation-created-handler referenced by CodeUri parameter of DonationCreatedHandlerFunction resource.
ZIP does not support timestamps before 1980
even after downgrading to 1.11.79
(that was working some time ago) gives the same error.
It sounds like you have some files with invalid timestamps. This could be indicative of a larger issue, so I would recommend fixing them. Changing your version of the CLI won't impact this because the the error is raised in python itself.
I'm noticing the exact same error message with CircleCI today, during the create_application_revision command:
```create_application_revision /tmp/codedeploy_applications.json /tmp/codedeploy_revisions.json
create_application_revision loaded: {"applications":[{"region":"us-west-2","application_root":"/","revision_location":{"s3Location":{"bucket":"
Bundling
Unhandled exception
ZIP does not support timestamps before 1980
((create_application_revision "/tmp/codedeploy_applications.json" "/tmp/codedeploy_revisions.json")) returned exit code 1
```
There's also a Bug Report open on CircleCI's support forums about this.
@JordonPhillips thanks for the quick feedback. We'll wait to see if anyone gets back to us on the CircleCi issue. @arsenio -just to note we deployed manually via code deploy directly and this solved the problem in the short term.
So for me uglify-js
got files with creation date at 1969.
As a workaround I added this:
find ./dist/ -type f -exec touch -t 201601011200 '{}' \;
This is happening for us too; since Sunday on our Shippable build server and locally after a rm -rf node_modules
eb deploy
Creating application version archive "app-bce1-170606_163952".
ERROR: ValueError :: ZIP does not support timestamps before 1980
This is a nodejs app, EB CLI 3.9.0 (Python 2.7.1)
Update: Looks like this is being caused by uglify-js as @mgibas says.
@mgibas with the save: certain (but not all) files in the ugllify-js
library have 1969 timestamps on them. Touching those files should get your past this nasty hurdle.
Actually seems to me to be a prob with Webpack's NPM package. Posted issue https://github.com/webpack/webpack/issues/5022
Yeah, seems like uglify is a pretty common dependency :)
@sumothecat it's not Webpack's issue. It's an issue with UglifyJS which webpack uses. The community needs to point fingers in the correct location as has been linked by @mgibas
@eric-tucker we don't use Uglify, but Webpack has an implicit dependency on it. I've closed the issue in Webpack and will be using a yarn lock file in future!
Same here, any thoughts?
For my application, both jest
and webpack
were bringing in the corrupted version of uglify-js
.
As I already use npm-shrinkwrap
, I added the following lines to my npm-shrinkwrap.json
file -
"uglify-js": {
"version": "2.8.27",
"from": "uglify-js@=2.8.27",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz"
},
which let me work around this issue temporarily.
Looking at mgibas answer, temp solution that worked for me for now after a yarn install or npm install is.
find node_modules/uglify-js -print -exec touch {} \;
More robust hack to add to your package.json
file:
{
"scripts": {
"install": "find ./node_modules/* -mtime +10950 -exec touch {} \\;"
}
}
This will touch
each file that is more then 30 years old after each npm install
command.
Also appears to be an issue with the ieee754
module, which is a dependency of aws-sdk
. This issue has been reported: https://github.com/feross/ieee754/issues/17
seeing the same issues, cause by @slack/client npm this time.
Though there is definitely an issue with some timestamps getting mangled, I don't see why this CLI tool should care. What is the reason for invalid timestamps causing this issue? Is there a way they can be supported to entirely avoid this issue?
I had the same issue. I tried everything, but only restarting my laptop did the trick.
Same issue and it's not an uglify-js
issue since I have a latest version of this lib.
as suggested above i just ran
find ./node_modules/* -mtime +10950 -exec touch {} \;
on vscode terminal from root dir of the proj and it fixed it
eb deploy
gave me
ERROR: ValueError - ZIP does not support timestamps before 1980
find . -mtime +10950 -print -exec touch {} \;
solved the problem.
This has been a recurrent issue on multiple proyects with different dependencies.
I still run into this issue.
Just had this issue too when I added nyc (istanbul) as a dev dependency, it looks like it added uglify-js which is the root cause of this issue.
From my PoV, it seems related to yarn
on Mac.
When using npm
on Mac everything's fine.
When using yarn
on Ubuntu everything's fine.
Even with uglify-js
and many other dependencies.
It can be demoed by packaging the hello-world of AWS SAM (https://github.com/awslabs/aws-sam-cli/tree/develop#package-and-deploy-to-lambda).
Else, https://github.com/aws/aws-cli/issues/2639#issuecomment-391255985 do perfectly the trick (but can be costly with many files)
We use yarn --production
that skip all the devDependencies
packages, it helps solved this problem.
Sadly, I depend on a few packages in production which cause this issue so yarn --production
doesn't help.
That said, yarn --production
before fixing timestamps in node_modules/
does significantly decrease build time.
What is the windows command for
find ./node_modules/* -mtime +10950 -exec touch {} \;
I can't run this on my computer
It looks like this could have been fixed by using the strict_timestamps
argument from zipfile python library.
Most helpful comment
eb deploy
gave mefind . -mtime +10950 -print -exec touch {} \;
solved the problem.