Seems to be a Coderwall bug, I sent a message to their support address. Hopefully they'll fix it soon, but here's the address again: http://randomerrata.com/post/45827813818/travis-s3
Though Travis Pro has built-in caching now, so most of this isn't required anymore: https://docs.travis-ci.com/user/caching/
Inspired by this post, I wrote my own version of the S3 bundle cache script (heavily inspired by your code): http://randomerrata.com/post/45827813818/travis-s3
The main difference would probably be that my script only uploads a new version of the bundle if the Gemfile.lock has changed.
I also use a multipart upload to S3 due to some slowness I encountered while testing this script (though that particular issue has been fixed by the Travis team now).