Menu Errors & Warnings
Submission Errors
These errors are returned immediately to the API User, and prevent a Menu Creation Request from being created.
Error Type | Example Responses | Description | Recommended Actions |
|---|---|---|---|
Required Fields | {"errors": [ ... Field \"locationId\" of required type \"UUID!\" was not provided.", ...]} {"errors": [ ... message": "Variable $menu of type MenuInput! was provided invalid value for locationId (\"\" is not a valid UUID)", ...]} | Fields that cannot be blank/null: • location_id (UUID format required) • pos_id (string) • name (string) • start_date (date format, cannot be blank) • categories (array, minimum 1 required) • items (array, minimum 1 required) |
|
Collection Length | {"errors": [ ... "message": "items is too short (minimum is 1)", ...]} {"errors": [ ... "message": "selections is too short (minimum is 1)", ...]} | • Categories and items arrays must have at least 1 element • Item selections must have 1-5 elements • Choice selections must have 1-5 elements |
|
Item Type Tag | {"errors": [ ... "message": "The 'individuallyPackagedRelishSide' tag is only valid for choices, not for items", ...]} |
|
|
Runtime Errors
These errors are aggregated throughout the course of the Menu Creation, and are returned when the API user queries the Status of a Menu Creation. If any of these errors are returned, the menu is not created
Error Type | Example Responses | Description | Recommended Actions |
|---|---|---|---|
Duplicate Property | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "failure", ... "errors": [ { "message": "Each member of the 'items' collection must have a unique 'pos_id'", "details": { "count": 2, "pos_id": "item-1" } } ... |
|
|
Reference Validation | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "failure", ... "errors": [ { "message": "Referenced entity is not defined", "details": { "source": "categories", "source_name": "Catering Packages", "source_pos_id": "category-1", "reference_type": "items", "referenced_pos_id": "item-2" } } ... | • Items referenced by categories must exist (item_pos_ids) • Options referenced by items must exist (option_pos_ids) • Choices referenced by options must exist (choice_pos_ids) |
|
Selection Size | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "failure", ... "errors": [ { "message": "Entity has duplicate selection sizes", "details": { "size": "1-5", "entity_name": "XL Deep Dish Pizza", "entity_pos_id": "item-1" } } ]... |
|
|
Choice Selection Logic | "menuCreationRequest": { "status": "completed", "outcome": "failure", "menuUuid": null, "errors": [ { "message": "maxChoiceSelections must be greater than or equal to minChoiceSelections", "details": { "maxchoices": 1, "minchoices": 5, "entity_name": "Taco Bar", "entity_pos_id": "option-2" } }, { "message": "minChoiceSelections must be less than or equal to count of Choices", "details": { "minchoices": 5, "entity_name": "Taco Bar", "entity_pos_id": "option-2", "choices_present": 3 } } ], | For an Option Group
|
|
Item-Choice Selection Mismatch | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "failure", "menuUuid": null, "errors": [ { "message": "Choice must have either 1 selection, or >= selections than associated item", "details": { "item_pos_id": "item-1", "choice_pos_id": "choice-1", "option_pod_id": "option-1" } } ], |
|
|
Zero Priced Items | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "failure", "menuUuid": null, "errors": [ { "message": "Too many zero priced items", "details": { "threshold": 100, "zero_price_percentage": 100 } } ], |
|
|
Meal Program Channel | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "failure", "menuUuid": null, "errors": [ { "message": "Item must have quantityOptions of '>1'", "details": { "item_pos_id": "item-1", "quantity_options": ">5" } }, { "message": "Selection must have serves = 1", "details": { "serves": 5, "item_pos_id": "item-1", "selection_pos_id": null } }, { "message": "Item cannot have a choice with enableSubQuantities = true", "details": { "item_pos_id": "item-1", "choice_pos_id": "choice-1", "option_pos_id": "option-1" } } ], | If an item services the “Meal Program” channel
|
|
Utensils | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "failure", "menuUuid": null, "errors": [ { "message": "Option 'Toppings Deep Dish Catering' mixes utensil and non-utensil choices.", "details": { "option_name": "Toppings Deep Dish Catering", "option_pos_id": "option-1" } }, { "message": "Option 'Utensils' with utensil choices must not have min_choice_selections > 0.", "details": { "option_name": "Utensils", "option_pos_id": "utensils-1" } } ], |
|
|
Runtime Warnings
These are warnings that are aggregated during the course of Menu Creation. They do not prevent the menu from being created but are intended to highlight what we consider menu deficiencies. These are also returned as an array within the Status of a Menu Creation
Warning Type | Example Responses | Description | Recommended Actions |
|---|---|---|---|
Image Extension | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "success_with_warnings", "menuUuid": "8eedb10c-8766-4241-9b66-cf471ad73534", "warnings": [ { "message": "Invalid extension for file referenced by imageUrl. Image will not be displayed.", "details": { "imageUrl": "test_image.xml", "entityType": "item", "entityPosId": "item-1" } }, | Acceptable Image Extensions
|
|
Mutually Exclusive Fields | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "success_with_warnings", "menuUuid": "0c44976c-cef3-436c-96d3-91d470a8decf", "errors": [], "warnings": [ { "message": "Item 'item-1' has both 'lead_time' and 'day_before_cutoff_time' defined, please provide only one.", "details": {} }, |
|
|
Missing Utensils | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "success_with_warnings", "menuUuid": "0c44976c-cef3-436c-96d3-91d470a8decf", "warnings": [ { "message": "Item does not have a utensil choice mapped", "details": { "item_name": "Taco Bar", "item_pos_id": "item-2" } }, |
|
|
Zero Priced Item | { "data": { "menuCreationRequest": { "status": "completed", "outcome": "success_with_warnings", "menuUuid": "0c44976c-cef3-436c-96d3-91d470a8decf", "errors": [], "warnings": [ { "message": "Item with pos_id item-2-sel-1 has a price of $0.00. It will not be displayed.", "details": {} } |
|