{"record":{"id":"c91c7346cc388462","repo":"vercel/ai","slug":"invalid-argument-for-parameter-schemadescription-c91c73","errorCode":null,"errorMessage":"Invalid argument for parameter schemaDescription: Schema description is not supported for enum output.","messagePattern":"Invalid argument for parameter schemaDescription: Schema description is not supported for enum output\\.","errorType":"validation","errorClass":"InvalidArgumentError","httpStatus":null,"severity":"error","filePath":"packages/ai/src/generate-object/validate-object-generation-input.ts","lineNumber":111,"sourceCode":"      throw new InvalidArgumentError({\n        parameter: 'enumValues',\n        value: enumValues,\n        message: 'Enum values are not supported for array output.',\n      });\n    }\n  }\n\n  if (output === 'enum') {\n    if (schema != null) {\n      throw new InvalidArgumentError({\n        parameter: 'schema',\n        value: schema,\n        message: 'Schema is not supported for enum output.',\n      });\n    }\n\n    if (schemaDescription != null) {\n      throw new InvalidArgumentError({\n        parameter: 'schemaDescription',\n        value: schemaDescription,\n        message: 'Schema description is not supported for enum output.',\n      });\n    }\n\n    if (schemaName != null) {\n      throw new InvalidArgumentError({\n        parameter: 'schemaName',\n        value: schemaName,\n        message: 'Schema name is not supported for enum output.',\n      });\n    }\n\n    if (enumValues == null) {\n      throw new InvalidArgumentError({\n        parameter: 'enumValues',\n        value: enumValues,","sourceCodeStart":93,"sourceCodeEnd":129,"githubUrl":"https://github.com/vercel/ai/blob/69428b1f8b037e4d118fb4853428d5c4e620493c/packages/ai/src/generate-object/validate-object-generation-input.ts#L93-L129","documentation":"schemaDescription annotates a schema, but output: 'enum' uses enumValues rather than a schema, so there is nothing to describe. The library throws InvalidArgumentError for schemaDescription when output is 'enum'.","triggerScenarios":"Calling generateObject({ model, output: 'enum', enumValues: [...], schemaDescription: '...', prompt }) or streamObject with the same; any non-null schemaDescription with enum output triggers it.","commonSituations":"Generic call builder that always sets schemaDescription; converting an object-output call to enum output without pruning schema-related options; configuration driven from user input that carries stale options.","solutions":["Remove schemaDescription when using output: 'enum'.","Explain the enum values in the prompt if additional guidance is needed.","Attach schemaDescription only for object/array output where a schema is used."],"exampleFix":"// before\ngenerateObject({ model, output: 'enum', enumValues: ['a','b'], schemaDescription: 'Pick a letter', prompt });\n// after\ngenerateObject({ model, output: 'enum', enumValues: ['a','b'], prompt: 'Pick a letter. ' + prompt });","handlingStrategy":"validation","validationCode":"if (opts.output === 'enum' && opts.schemaDescription != null) {\n  throw new Error(\"schemaDescription must be omitted when output is 'enum'\");\n}","typeGuard":"function isEnumOptionsClean(opts) {\n  return opts.output !== 'enum'\n    || (opts.schema == null\n      && opts.schemaDescription == null\n      && opts.schemaName == null);\n}","tryCatchPattern":"try {\n  return await generateObject(opts);\n} catch (error) {\n  if (InvalidArgumentError.isInstance(error) && error.parameter === 'schemaDescription') {\n    const { schemaDescription, ...rest } = opts;\n    return generateObject(rest);\n  }\n  throw error;\n}","preventionTips":["Only attach schemaDescription alongside an actual schema (object/array output).","Put extra guidance for enum picking into the prompt.","Sanitize options before calling generateObject/streamObject in generic wrappers."],"tags":["invalid-argument","schema-description","enum-output","input-validation"],"backgroundTag":"incompatible-schema-option","analyzedSha":"69428b1f8b037e4d118fb4853428d5c4e620493c","analyzedAt":"2026-08-30T12:32:21.016Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}