Whatever message this page gives is out now! Go check it out!
| Type string | Accepts | ColdFusion equivalent |
|---|---|---|
"String" | Any text value | isSimpleValue() |
"Number" | Integer or decimal | isNumeric() |
"Boolean" | true / false | isBoolean() |
"String", "string", "STRING", and "sTrInG" are all equivalent.? suffix to mark a field as optional. The model includes it when the information is available and omits it when it is not. The ? suffix works on nested struct fields too.SCHEMA: {
"city": "String", // required
"country": "String", // required
"population": "Number", // required
"mayor": "String?", // optional
"elevation": "Number?" // optional
}SCHEMA: {
"company": "String",
"headquarters": {
"country": "String",
"office": {
"floor": "Number",
"room": "String"
}
}
}// Array of primitives
SCHEMA: { "team": "String", "members": ["String"] }
// Array of objects
SCHEMA: {
"class": "String",
"students": [{ "name": "String", "grade": "Number", "pass": "Boolean" }]
}| Rejected type | Use instead |
|---|---|
"Date" | "String" (specify the format in the prompt) |
"Object" | Nested struct { ... } |
"Double" | "Number" |
"Float" | "Number" |
"Int" | "Number" |
| Error message (partial) | Cause | Fix |
|---|---|---|
"cannot be null or empty" | SCHEMA: {} — empty struct | Add at least one field to the schema |
"valid ColdFusion struct" | SCHEMA is not a struct | Pass a CF struct |
"SYSTEMMESSAGE or USERMESSAGE" | Neither message key present | Add USERMESSAGE or a system message |
"did not complete" | Unsupported type name | Replace with "String", "Number", or "Boolean" |
"exactly one element" | Array schema has 0 or 2+ elements | Use exactly one element: ["String"] or [{...}] |
| Symptom | Check | Recovery |
|---|---|---|
response.message is empty | len(trim(text)) == 0 | Retry or return a default value |
| Response is not JSON | !isJSON(text) | Log the raw text and return an error |
| Required field missing | !structKeyExists(parsed, field) | Flag for review; use a default value |
| Wrong type for a field | !isNumeric(parsed.age) | Cast the value or flag it as invalid |
| Array is empty | arrayLen(parsed.items) == 0 | Retry with a more explicit prompt hint |
| Feature | Anthropic | OpenAI | Azure OpenAI | Gemini | Mistral | Ollama |
|---|---|---|---|---|---|---|
| Flat schema | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Nested struct | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| String array | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Number array | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Object array | ✓ | ✓ | ✓ | ✓ | ✓ | — |
Optional fields (?) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| System message | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Deep nesting (5+ levels) | ✓ | — | — | — | — | — |
temperature: 0 | — | ✓ | ✓ | — | ✓ | — |
Requires ResponseFormat | — | — | — | — | ✓ | ✓ |
Requires BASEURL | — | — | ✓ | — | — | ✓ |