diff --git a/vllm/v1/structured_output/backend_xgrammar.py b/vllm/v1/structured_output/backend_xgrammar.py index 812c262a2..1ad43d218 100644 --- a/vllm/v1/structured_output/backend_xgrammar.py +++ b/vllm/v1/structured_output/backend_xgrammar.py @@ -304,17 +304,17 @@ def validate_xgrammar_grammar(sampling_params: SamplingParams) -> None: else: schema = so_params.json + if has_xgrammar_unsupported_json_features(schema): + raise ValueError( + "The provided JSON schema contains features not supported by xgrammar." + ) + try: xgr.Grammar.from_json_schema(schema) except Exception as err: raise ValueError( f"Failed to transform json schema into a grammar: {err}" ) from err - - if has_xgrammar_unsupported_json_features(schema): - raise ValueError( - "The provided JSON schema contains features not supported by xgrammar." - ) return if so_params.grammar: