Skip to main content

allof-contradictory-constraints

Finds an allOf whose branches give a required property no possible value.

AttributeValue
CategorySchema
MaturityPlatinum
OpenAPISwagger 2.0; OpenAPI 3.0, 3.1, 3.2
StarterOff
LenientWarning
Recommended–CompleteError

Intent

Every allOf branch must hold at the same time. Non-overlapping enum or const values for a required property make the combined schema impossible to satisfy.

Flags

Two or more inline or referenced allOf branches that constrain the same required property to finite, non-overlapping values. A property counts as required when the parent requires it, or every constraining branch does.

Does not flag

Optional properties, value sets with at least one shared value, or constraints that are not expressed with enum or const.

See it fail

Pet:
type: object
required: [kind]
allOf:
- type: object
properties:
kind:
type: string
enum: [cat]
- type: object
properties:
kind:
type: string
enum: [dog]

kind must be both cat and dog, which is impossible.

Fix it

Give the branches an overlapping value, or use oneOf when they represent alternatives:

Pet:
oneOf:
- type: object
required: [kind]
properties:
kind:
type: string
enum: [cat]
- type: object
required: [kind]
properties:
kind:
type: string
enum: [dog]

Configure

profiles:
default:
rules:
extends: [recommended]
override:
allof-contradictory-constraints: warn

Nearby: enum-no-matching-values, duplicate-oneof-discriminator.