Background
I think this build fails because I have regenerated the iOS distribution cert but not the provisioning profile - the failure is not the problem, this issue relates to how the error is displayed to the user.
Goal
To show the error from the build log - do not distract the user with a node based error as they may think the tool has failed rather than something being wrong with the build.
Example - shipthis game ship
david@sal9000:~/game$ shipthis game ship --platform ios
# There was an error shipping your game
One or more of the jobs to build your game failed.
## What now?
* The last 10 lines of the failed jobs are shown below
* Check out the full output in the ShipThis Dashboard https://develop.shipth.is/games/b8b2701f/job/e69a082b
### Need help?
* Join the Discord https://discord.gg/HuSvK4GT
* Report an issue https://github.com/shipth-is/cli/issues
JOB LOGS
10:13:24.520 BUILD | | ioning | |
10:13:24.521 BUILD | 6 | update_project_team | 0 |
10:13:24.522 BUILD | 💥 | build_app | 13 |
10:13:24.523 BUILD +------+------------------------+-------------+
10:13:24.524 BUILD [09:13:24]: fastlane finished with errors
10:13:24.522 BUILD Exit code 1 and signal null and error undefined
10:13:24.756 BUILD Fastlane failed, but continuing script
10:13:24.757 BUILD Resetting default keychain to /Library/Keychains/System.keychain
10:13:26.027 BUILD Failed to run the build script
10:13:26.028 SETUP Failed to run the build script
/home/david/work/shipthis.cc/oclif-cli/shipthis/node_modules/@oclif/core/lib/errors/error.js:61
throw err;
^
CLIError: One or more jobs failed
at Object.error (/home/david/work/shipthis.cc/oclif-cli/shipthis/node_modules/@oclif/core/lib/errors/error.js:44:15)
at GameShip.error (/home/david/work/shipthis.cc/oclif-cli/shipthis/node_modules/@oclif/core/lib/command.js:216:23)
at handleError (file:///home/david/work/shipthis.cc/oclif-cli/shipthis/dist/commands/game/ship.js:276:12)
at Timeout._onTimeout (file:///home/david/work/shipthis.cc/oclif-cli/shipthis/dist/commands/game/ship.js:134:59)
at listOnTimeout (node:internal/timers:581:17)
at process.processTimers (node:internal/timers:519:7) {
code: undefined,
oclif: { exit: 2 },
skipOclifErrorHandling: undefined,
suggestions: undefined
}
Node.js v20.20.0
david@sal9000:~/game$
Example - shipthis game ship --follow
david@sal9000:~/game$ shipthis game ship --platform ios --follow
Creating zip file: shipthis-95831712-8264-44fd-98c6-357317ccbda5.zip
Zipping: 0% (0.00MB / ~1.17MB) - 0.0s - 0.01MB/s
Uploading zip file...
Uploading: 6% (0.06MB / 1.11MB) - 0.0s - 8.93MB/s
Upload complete
Waiting for job to start...
Downloading CERTIFICATE user
Making the job folder
Running job 21702a3b-4e33-4676-bd53-b8cfc28e2d7d
Downloading KEY user
Downloading the credentials
Downloaded CERTIFICATE
Downloaded KEY
Downloading CERTIFICATE b8b2701f-6b77-4e5b-82e0-4518619fb5c4
Downloaded CERTIFICATE
Downloading the zip file with 3 retries
Download attempt 1 of 3 for https://shipthis-develop-storage-bucket.ams3.digitaloceanspaces.com/development.30days/gameUpload/b8b2701f-6b77-4e5b-82e0-4518619fb5c4/351c44ea-8c84-41c1-a6a7-c7fe10f2e087.zip?<signed>
Unzipping
Successfully downloaded 1160986 bytes (1.11 MB) to /var/folders/hm/d7rr9ds96qx995ns72ry9g4m0000gn/T/shipthis.agent/2026-08-27/21702a3b-4e33-4676-bd53-b8cfc28e2d7d/upload.zip
Unzipped
----- OMITTED -----
| 3 | install_provisioning_ | 0 |
| | profile | |
| 4 | update_code_signing_s | 0 |
| | ettings | |
| 5 | update_project_provis | 0 |
| | ioning | |
| 6 | update_project_team | 0 |
| 💥 | build_app | 12 |
+------+------------------------+-------------+
[09:26:16]: fastlane finished with errors
Exit code 1 and signal null and error undefined
Fastlane failed, but continuing script
Resetting default keychain to /Library/Keychains/System.keychain
Failed to run the build script
Failed to run the build script
/home/david/work/shipthis.cc/oclif-cli/shipthis/node_modules/@oclif/core/lib/errors/error.js:61
throw err;
^
CLIError: One or more jobs failed
at Object.error (/home/david/work/shipthis.cc/oclif-cli/shipthis/node_modules/@oclif/core/lib/errors/error.js:44:15)
at GameShip.error (/home/david/work/shipthis.cc/oclif-cli/shipthis/node_modules/@oclif/core/lib/command.js:216:23)
at handleError (file:///home/david/work/shipthis.cc/oclif-cli/shipthis/dist/commands/game/ship.js:276:12)
at Timeout._onTimeout (file:///home/david/work/shipthis.cc/oclif-cli/shipthis/dist/commands/game/ship.js:134:59)
at listOnTimeout (node:internal/timers:581:17)
at process.processTimers (node:internal/timers:519:7) {
code: undefined,
oclif: { exit: 2 },
skipOclifErrorHandling: undefined,
suggestions: undefined
}
Node.js v20.20.0
david@sal9000:~/game$
Background
I think this build fails because I have regenerated the iOS distribution cert but not the provisioning profile - the failure is not the problem, this issue relates to how the error is displayed to the user.
Goal
To show the error from the build log - do not distract the user with a node based error as they may think the tool has failed rather than something being wrong with the build.
Example -
shipthis game shipExample -
shipthis game ship --follow