# FLAG_LIFECYCLE_INCOMPLETE

- Surface: API
- HTTP status: 400
- Details: `{ lifecycleClass: string, missing: Array<"owner" | "expiresAt"> }`

## Remediation

Drop the null for the inputs named in details.missing, or reclassify the Flag as ops or permission

## Cause

A flags_update patch explicitly cleared the owner or expiry of a release or experiment Flag. Those classes are temporary by definition, so the platform refuses to keep one that nobody is due to remove. Omitted values are never refused: creates and reclassifications fill them with defaults.

## Fix

`details.missing` lists `owner`, `expiresAt`, or both, and `details.lifecycleClass` is the class that requires them. Send a new value instead of `null`, or classify the Flag as `ops` or `permission` if it is meant to be permanent.

## Related

- [VALIDATION_ERROR](https://splitch.dev/docs/error/VALIDATION_ERROR)

Source: https://splitch.dev/docs/error/FLAG_LIFECYCLE_INCOMPLETE