SigNoz/signoz · error · basemodel.ApiError

deployment info response not in expected shape. couldn't det

Error message

deployment info response not in expected shape. couldn't determine region dns and deployment name

What it means

The deployment info JSON parsed successfully but the expected fields (cluster.region.dns and the top-level name) are empty. This is an explicit fail-early guard for divergence between the actual Zeus response shape and the struct expectation.

Source

Thrown at ee/query-service/app/api/cloudIntegrations.go:186

			"couldn't query for deployment info: error: %w", err,
		))
	}

	resp := new(deploymentResponse)

	err = json.Unmarshal(respBytes, resp)
	if err != nil {
		return "", basemodel.InternalError(fmt.Errorf(
			"couldn't unmarshal deployment info response: error: %w", err,
		))
	}

	regionDns := resp.ClusterInfo.Region.DNS
	deploymentName := resp.Name

	if len(regionDns) < 1 || len(deploymentName) < 1 {
		// Fail early if actual response structure and expectation here ever diverge
		return "", basemodel.InternalError(fmt.Errorf(
			"deployment info response not in expected shape. couldn't determine region dns and deployment name",
		))
	}

	signozApiUrl := fmt.Sprintf("https://%s.%s", deploymentName, regionDns)

	return signozApiUrl, nil
}

type ingestionKey struct {
	Name  string `json:"name"`
	Value string `json:"value"`
	// other attributes from gateway response not included here since they are not being used.
}

type ingestionKeysSearchResponse struct {
	Status string         `json:"status"`
	Data   []ingestionKey `json:"data"`

View on GitHub (pinned to 5069bf80b0)

Solutions

  1. Log the parsed response to confirm which field (regionDns vs deploymentName) is empty
  2. Verify the deployment is fully provisioned in the SigNoz cloud console
  3. Confirm license key maps to an active deployment
  4. Report schema drift to SigNoz if the payload structure changed
Defensive patterns

Strategy: validation

Try / catch

Treat as a shape mismatch: capture the parsed response, alert on schema drift, and avoid retrying blindly since data is missing.

Prevention

When it happens

Trigger: Zeus returns a well-formed deployment payload where region DNS or deployment name is empty/missing — e.g. a deployment still provisioning, a new response schema, or a license resolving to a half-configured cluster.

Common situations: Cloud deployment not yet fully provisioned, upstream schema drift after a cloud-side update, or querying with a license tied to a deleted deployment.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of SigNoz/signoz@5069bf80b0 (2026-08-28). Data as JSON: /api/errors/c49728e1769ae9ef. Report an issue: GitHub.