Skip to content

Cascade Subset Violation

URI: https://docs.ankatech.co/errors/cascade-subset-violation
HTTP Status: 409 Conflict

When you see this

A cascading change would leave dependent resources outside the bounds of the policy that governs them. The cascade was rejected to keep child policies a valid subset of their parent.

Common Causes

  • Changing a parent policy in a way that would make existing child policies non-conforming.
  • A cascade that would widen a child policy beyond the new parent bounds.
  • Dependent resources that cannot be brought into compliance by the cascade.

Response Example

{
  "type": "https://docs.ankatech.co/errors/cascade-subset-violation",
  "title": "Cascade Subset Violation",
  "status": 409,
  "detail": "Proposed algorithm deployment policy violates subset constraint for 2 tenants. Tenants would need to update their policies to remain compliant before the deployment narrowing can proceed.",
  "instance": "/api/v3/admin/platform/deployment/policies/algorithm-availability",
  "timestamp": 1730000000,
  "extensions": {
    "requestId": "550e8400-e29b-41d4-a716-446655440000",
    "policyType": "algorithm",
    "violators": [
      { "tenantId": "3f9a1b62-5d47-4c8e-b0a2-91d7e4f60cc5", "tenantName": "acme-payments" },
      { "tenantId": "7c2e9d10-8b4f-4a6e-9f31-2d5b8e7a1c04", "tenantName": "northwind-hr" }
    ],
    "totalViolators": 2
  }
}

Content-Type: application/problem+json — the response follows RFC 9457 Problem Details.

Extension members: policyType names the deployment policy type being narrowed; violators lists at most the first 50 affected tenants, sorted by tenantName and then by tenantId, as {tenantId, tenantName} and nothing else — the body never echoes the proposed deployment policy, which the caller already holds; totalViolators is the full count, which can exceed the length of violators.

How to Resolve

  1. Identify the tenants that would violate the new bounds (extensions.violators, with extensions.totalViolators as the full count).
  2. Bring those child policies into compliance first, or narrow the parent change.
  3. Re-apply the cascade once all dependents would remain a valid subset.

For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.