I think it would be helpful to add a note that you might need to add execute permissions if you are using .sh scripts as part of the build sequence for Functions. This would have saved some time and a headache after getting a build error that wasn't very helpful. You can find my experience here . Basically, if you have a build.sh under the lib folder and the script doesn't have execute permission, then you'll get a JSON error.