hasura/graphql-engine · error

got error while getting the sources list : %w

Error message

got error while getting the sources list : %w

What it means

Thrown by migrate status Run when --all-databases is set and metadatautil.GetSourcesAndKind fails while exporting metadata from the Hasura server to enumerate sources. It means the CLI could not read server metadata, so per-source status cannot be computed.

Source

Thrown at cli/commands/migrate_status.go:71

			return nil
		},
	}

	return migrateStatusCmd
}

func (o *MigrateStatusOptions) Run() error {
	var op errors.Op = "commands.MigrateStatusOptions.Run"

	o.EC.Spin("Fetching migration status...")
	defer o.EC.Spinner.Stop()

	if ec.AllDatabases {
		sourcesAndKind, err := metadatautil.GetSourcesAndKind(
			o.EC.APIClient.V1Metadata.ExportMetadata,
		)
		if err != nil {
			return errors.E(op, fmt.Errorf("got error while getting the sources list : %w", err))
		}

		for _, source := range sourcesAndKind {
			o.Source = cli.Source(source)

			status, err := o.RunOnSource()
			if err != nil {
				return errors.E(
					op,
					fmt.Errorf("error getting status for database '%s': %w", o.Source.Name, err),
				)
			}

			o.StatusOpts[o.Source] = status
		}

		return nil
	}

View on GitHub (pinned to 724551b9ae)

Solutions

  1. Verify the Hasura server is up and the --endpoint URL is correct
  2. Verify --admin-secret (or HASURA_GRAPHQL_ADMIN_SECRET env) is valid
  3. Check server logs for metadata export errors and fix any corrupted metadata
  4. Match CLI version to server version (hasura version vs server version)
Defensive patterns

Strategy: try-catch

Validate before calling

// verify server reachability + auth before running status
req, _ := http.NewRequest("GET", endpoint+"/v1/version", nil)
req.Header.Set("X-Hasura-Admin-Secret", adminSecret)
if resp, err := http.DefaultClient.Do(req); err != nil || resp.StatusCode != 200 {
    return fmt.Errorf("server unreachable or auth failed: %v", err)
}

Try / catch

Wrap the migrate status call; on this error, distinguish auth (401/403 in wrapped error) from connectivity (connection refused/timeout) and surface an actionable message instead of retrying blindly.

Prevention

When it happens

Trigger: Running 'hasura migrate status --all-databases' when ExportMetadata request fails: server unreachable, invalid admin secret, incompatible server version, or malformed metadata response.

Common situations: Wrong --endpoint or --admin-secret, Hasura server not running, network/VPN issues, or using a CLI version whose metadata export API differs from the server's.

Related errors


AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28). Data as JSON: /api/errors/137a749dcd91cca3. Report an issue: GitHub.