Context
Today, evaluating a disabled flag in flagd returns an error (reason=ERROR, errorCode=FLAG_DISABLED). This conflicts with the OpenFeature spec, which defines DISABLED as a successful resolution reason, not an error. FLAG_DISABLED is also not a valid error code in either the OpenFeature spec or the OFREP evaluationFailure schema.
ADR: docs/architecture-decisions/disabled-flag-evaluation.md
Work
Notes
This is a breaking behavioral change — clients that branch on FLAG_DISABLED errors or HTTP 404 responses from OFREP single-flag evaluation will need to update. Ships as a minor version bump (flagd is pre-1.0). See the ADR for migration guidance.
The core evaluator and service layer changes must ship before the in-process provider updates so integrators see consistent behavior across all evaluation surfaces.
Context
Today, evaluating a disabled flag in flagd returns an error (
reason=ERROR,errorCode=FLAG_DISABLED). This conflicts with the OpenFeature spec, which definesDISABLEDas a successful resolution reason, not an error.FLAG_DISABLEDis also not a valid error code in either the OpenFeature spec or the OFREPevaluationFailureschema.ADR: docs/architecture-decisions/disabled-flag-evaluation.md
Work
flagd-corein-process evaluator — feat: flagd-core in-process evaluator returns reason=DISABLED for disabled flags js-sdk-contrib#1552flagd-corein-process evaluator — feat: flagd-core in-process evaluator returns reason=DISABLED for disabled flags java-sdk-contrib#1799openfeature-flagd-corein-process evaluator — feat: flagd-core in-process evaluator returns reason=DISABLED for disabled flags python-sdk-contrib#393Notes
This is a breaking behavioral change — clients that branch on
FLAG_DISABLEDerrors or HTTP 404 responses from OFREP single-flag evaluation will need to update. Ships as a minor version bump (flagd is pre-1.0). See the ADR for migration guidance.The core evaluator and service layer changes must ship before the in-process provider updates so integrators see consistent behavior across all evaluation surfaces.