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
bump the default Dockerfile pin from v2026.2.9 to v2026.3.7
use the existing TCP gateway probe for startup readiness instead of HTTP GET polling
add a regression test covering startup readiness
Why
The template currently builds an older OpenClaw release by default, which can drift from persisted config generated by newer OpenClaw installs. The wrapper also reports a false Gateway did not become ready in time on healthy boots because the TCP listener comes up before the HTTP surfaces are ready enough for the current probe. Using the existing TCP probe matches the /healthz behavior and avoids the false negative.
TCP connect success does not guarantee the HTTP layer is initialized — replacing the HTTP poll with probeGateway() in waitForGatewayReady may reintroduce 502 errors on cold starts
probeGateway() resolves as soon as the kernel accepts a TCP connection on the gateway port. At that point, the OpenClaw process may still be bootstrapping its HTTP router, WebSocket upgrade handler, and auth middleware. The wrapper will then call gatewayStarting resolved, begin proxying requests, and the first real requests hit a half-initialized handler — producing the same 502 / "Application failed to respond" pattern that PRs #116 and #124 specifically addressed.
The previous HTTP poll (fetch() returning any response) was a stronger liveness signal because it required the HTTP stack to be up. The PR's stated motivation — TCP port opens before HTTP surfaces are ready — is the opposite of this risk: it means there is a window between TCP-ready and HTTP-ready during which this probe would falsely pass. Consider keeping the HTTP probe and adjusting the timeout or retry strategy instead, or adding a short sleep after TCP success before declaring ready.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v2026.2.9tov2026.3.7Why
The template currently builds an older OpenClaw release by default, which can drift from persisted config generated by newer OpenClaw installs. The wrapper also reports a false
Gateway did not become ready in timeon healthy boots because the TCP listener comes up before the HTTP surfaces are ready enough for the current probe. Using the existing TCP probe matches the/healthzbehavior and avoids the false negative.