hasura/graphql-engine · warning
expected version info not found at %s
Error message
expected version info not found at %s
What it means
The update-check response decoded successfully but contained neither Latest nor PreRelease version fields, so there is nothing to compare the current version against. This indicates a server-side or schema change rather than a client network problem.
Source
Thrown at cli/update/update.go:47
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),
)
}
return response.Latest, response.PreRelease, nil
}
func buildAssetURL(v string) string {
os := runtime.GOOS
arch := runtime.GOARCH
extension := ""
if os == "windows" {
extension = ".exe"
}
return fmt.Sprintf(
"https://github.com/hasura/graphql-engine/releases/download/v%s/cli-hasura-%s-%s%s",
v, os, arch, extension,View on GitHub (pinned to 724551b9ae)
Solutions
- Fetch updateCheckURL manually and confirm the response contains the expected latest/pre-release fields
- If self-hosting/mirroring the update endpoint, fix the payload to match the expected schema
- Disable update checks if the endpoint is known to be incompatible
Defensive patterns
Strategy: fallback
Try / catch
if _, _, err := update.HasUpdate(); err != nil {
// missing version info: degrade to current version, do not block the CLI
log.Printf("update info unavailable: %v", err)
} Prevention
- Pin CLI versions in CI so update-check results are advisory only
- Monitor the update service contract if self-hosted
When it happens
Trigger: Calling update.HasUpdate() when the endpoint returns valid JSON like {} or a payload where the expected fields are named differently (schema drift on the update service).
Common situations: The update service being migrated or a staged rollout serving an empty payload, an API version change, or a misconfigured mirror/redirect serving an unexpected JSON document.
Related errors
- failed writing current time to file: %w
- update check request: %w
- decoding update check response: %w
- pulling latest actions codegen files from internet failed: %
- unable to fetch introspection schema: %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/3a0e7ec45e54f09c.
Report an issue: GitHub.