hasura/graphql-engine · warning
update check request: %w
Error message
update check request: %w
What it means
getLatestVersion performs the HTTP GET against the update-check URL and wraps transport-level failures. This means DNS resolution failure, connection refused/timeout, TLS errors, or a proxy blocking the request - anything before a response is received.
Source
Thrown at cli/update/update.go:32
"time"
"github.com/Masterminds/semver/v3"
"github.com/hasura/graphql-engine/cli/v2/internal/errors"
)
const updateCheckURL = "https://releases.hasura.io/graphql-engine?agent=cli"
type updateCheckResponse struct {
Latest *semver.Version `json:"latest"`
PreRelease *semver.Version `json:"prerelease"`
}
func getLatestVersion() (*semver.Version, *semver.Version, error) {
var op errors.Op = "update.getLatestVersion"
res, err := http.Get(updateCheckURL)
if err != nil {
return nil, nil, errors.E(op, fmt.Errorf("update check request: %w", err))
}
defer res.Body.Close()
var response updateCheckResponse
err = json.NewDecoder(res.Body).Decode(&response)
if err != nil {
return nil, nil, errors.E(op, fmt.Errorf("decoding update check response: %w", err))
}
if response.Latest == nil && response.PreRelease == nil {
return nil, nil, errors.E(
op,
fmt.Errorf("expected version info not found at %s", updateCheckURL),
)
}
View on GitHub (pinned to 724551b9ae)
Solutions
- Check network/proxy configuration (HTTP_PROXY/HTTPS_PROXY) and retry when online
- If running offline or in CI, disable update checks via config/env so HasUpdate is not called
- Verify the update endpoint is reachable: curl -I the updateCheckURL from the same environment
- Update CA certificates if TLS handshake is the underlying cause
Example fix
// before
latest, pre, err := update.HasUpdate()
if err != nil { return err }
// after
latest, pre, err := update.HasUpdate()
if err != nil {
log.Printf("update check skipped: %v", err) // non-fatal, degrade gracefully
} Defensive patterns
Strategy: fallback
Try / catch
if _, _, err := update.HasUpdate(); err != nil {
// treat as 'no update info': log at debug level and continue
log.Printf("update check unavailable: %v", err)
} Prevention
- Disable update checks in offline/CI environments
- Keep update-check failures non-fatal in wrappers around the CLI
- Set proxy env vars when behind corporate proxies
When it happens
Trigger: Calling update.HasUpdate() with no internet access, a firewall/proxy blocking the update endpoint, broken DNS, or an expired TLS root store in old runtimes.
Common situations: CI runners or air-gapped environments with egress restrictions, corporate proxies requiring configuration, captive portals, or intermittent network drops during a CLI run.
Related errors
- decoding update check response: %w
- pulling latest actions codegen files from internet failed: %
- unable to fetch introspection schema: %w
- error in fetching introspection schema: %w
- setting up codegen-assets repo failed (this is required for
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/8f7f5eea87b52bd3.
Report an issue: GitHub.