You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When openshell sandbox create fails with a TLS certificate error (invalid peer certificate: BadSignature), NemoClaw's onboard flow exits with exit code 1 and a generic recovery suggestion. The classifySandboxCreateFailure() function in bin/lib/onboard.js does not have a case for TLS/certificate errors, so the failure is classified as "unknown".
This means:
The user gets no specific guidance on how to fix the cert mismatch
nemoclaw onboard --resume retries the same failing sandbox create without fixing the underlying TLS trust
The 5+ minutes spent building and uploading the sandbox image is wasted on each retry
In bin/lib/onboard.js, classifySandboxCreateFailure() (line ~1072) checks for:
image_transfer_timeout (regex: failed to read image export stream|Timeout error)
image_transfer_reset (regex: Connection reset by peer)
sandbox_create_incomplete (regex: Created sandbox:)
But there is no case for TLS/certificate errors like BadSignature, invalid peer certificate, handshake verification failed, or transport error. These all fall through to the "unknown" catch-all.
Additionally, the onboard flow at step [2/8] (gateway startup) validates that the gateway is healthy but does not verify that the openshell CLI's TLS trust is still valid against the running gateway before proceeding to the image build.
Expected Behavior
classifySandboxCreateFailure() should detect certificate/TLS errors and suggest:
Hint: TLS certificate mismatch — the gateway's certificate does not match the CLI's cached trust.
Fix: openshell gateway trust -g nemoclaw
Then: nemoclaw onboard --resume
Onboard step [2/8] should verify TLS trust after confirming gateway health, before starting the image build. If trust is stale, auto-refresh it.
Ideally, openshell sandbox create itself should detect the cert mismatch and auto-retry with a trust refresh (this would be an OpenShell fix — see OpenShell fix: revert "ci: remove redundant docs workflow" #856).
Suggested Code Change
In classifySandboxCreateFailure(), add before the final return:
Summary
When
openshell sandbox createfails with a TLS certificate error (invalid peer certificate: BadSignature), NemoClaw's onboard flow exits with exit code 1 and a generic recovery suggestion. TheclassifySandboxCreateFailure()function inbin/lib/onboard.jsdoes not have a case for TLS/certificate errors, so the failure is classified as"unknown".This means:
nemoclaw onboard --resumeretries the same failingsandbox createwithout fixing the underlying TLS trustEnvironment
Reproduction Steps
nemoclaw onboardto create a new sandboxopenshell sandbox createfails with:Root Cause
In
bin/lib/onboard.js,classifySandboxCreateFailure()(line ~1072) checks for:image_transfer_timeout(regex:failed to read image export stream|Timeout error)image_transfer_reset(regex:Connection reset by peer)sandbox_create_incomplete(regex:Created sandbox:)But there is no case for TLS/certificate errors like
BadSignature,invalid peer certificate,handshake verification failed, ortransport error. These all fall through to the"unknown"catch-all.Additionally, the onboard flow at step [2/8] (gateway startup) validates that the gateway is healthy but does not verify that the openshell CLI's TLS trust is still valid against the running gateway before proceeding to the image build.
Expected Behavior
classifySandboxCreateFailure()should detect certificate/TLS errors and suggest:Onboard step [2/8] should verify TLS trust after confirming gateway health, before starting the image build. If trust is stale, auto-refresh it.
Ideally,
openshell sandbox createitself should detect the cert mismatch and auto-retry with a trust refresh (this would be an OpenShell fix — see OpenShell fix: revert "ci: remove redundant docs workflow" #856).Suggested Code Change
In
classifySandboxCreateFailure(), add before the finalreturn:And in
printSandboxCreateRecoveryHints():Related