request-property-enum-value-removed

Request property enum value removed.

directionrequestareaschemakindvaluesactionremove

Breaking change (level: error)

It removes a value the request used to accept, so clients that still send it are rejected.

What this check detects

A value was removed from a request property’s `enum`, the set of values the server accepts. The server no longer accepts that value, so a client that sends it now fails validation.

Removing an accepted input value is breaking. Adding a value is safe; removing one is not.

Example

Before
After
1schema:1schema:
2 type: object2 type: object
3 properties:3 properties:
4 size:4 size:
5 type: string5 type: string
6 enum: [small, medium, large, xlarge]6 enum: [small, medium, large]

A client sending "size": "xlarge" was valid before and now fails validation.

How to handle this change

When oasdiff flags request-property-enum-value-removed, you have a few ways to respond:

  • Find a backward-compatible alternative. Redesign the change so clients that followed the old contract keep working, and agree on the approach with whoever introduced it.
  • Release it in a new API version. Keep the current contract and introduce the change in a new version, then deprecate the old one with a sunset date so clients have time to migrate.
  • Accept it as a deliberate breaking change. Sometimes a breaking change is unavoidable, such as an urgent or security fix. Approve it knowingly, document it in your release notes, and tell affected clients. This should be the exception, not a routine way of working.

If oasdiff's verdict does not match your API's compatibility policy, you can also change how it treats request-property-enum-value-removed with a severity-levels file:

Put one rule per line; the level can be err, warn, or info, or none to disable the check entirely:

# severity.txt
request-property-enum-value-removed warn

Then pass it to oasdiff:

oasdiff changelog base.yaml revision.yaml --severity-levels severity.txt

Related schema rules

Browse all 509 checks →