Input validation
Whenever you submit a dataset to Timefold through the API or UI the input is validated and if there are issues, you will see the following depending on the type of validation issue:
Invalid JSON
The submitted JSON file is validated to make sure the JSON is syntactically valid and valid according to the OpenAPI specification and can be processed by Timefold.
A POST call with an invalid JSON document will return a status 400 Bad Request.
The response will include a message specifying the input JSON has an invalid format and details that will help you locate the issue with the JSON.
Solution: Fix the invalid JSON and resubmit the dataset.
Validation errors
The JSON is valid according to the OpenAPI specification but the submitted dataset includes (or does not include) elements that need to be rectified before the dataset can be solved.
The dataset’s state will clearly indicate that it is invalid.
Validation errors include:
-
A driver shift must have either a
minStartTimeor aminFirstStopArrivalTime. -
A driver shift must have a
minStartTimebefore or equal tominFirstStopArrivalTime(when both are set). -
A driver shift itinerary contains a stop that is not found in the route plan.
-
The list of jobs is empty.
-
A job’s
requiredDriversreferences a non-existing driver. -
A stop’s time window does not have
minStartTimeless than themaxEndTime. -
A stop’s dependency must reference an existing preceding stop id.
Solution: Review the error message and resubmit the dataset.
Validation warnings
The JSON is valid according to the OpenAPI specification but there are some recoverable problems.
The dataset’s state will indicate its valid and the dataset can be solved.
Validation warnings include:
-
Uses a deprecated feature.
-
Is missing some element that is necessary to successfully assign a visit, including:
-
The list of drivers is empty.
-
The list of driver shifts is empty.
-
A job’s 'preferredDrivers' references a non-existing driver.
-
A time window is too small for a stop.
-
A job requires a skill that is not declared by any driver shift.
-
Solution: The dataset will be processed, but we recommend looking at the warnings and updating the dataset.
Input validation in the Timefold Platform UI
In addition to the API-based validation described above, the Timefold Platform UI also provides built-in support to help you detect and manage input validation issues when working with datasets.
Invalid JSON
When uploading an input file through the New plan dialog in the Timefold Platform UI:
-
If the JSON is invalid, the upload is immediately rejected.
-
The dialog displays a clear error message to help you locate and fix the issue.
-
The dataset is not accepted until the JSON syntax is corrected.
This ensures that invalid JSON never enters the system.
Validation errors
Datasets (submitted via the UI or API) that are syntactically valid but contain validation errors:
-
The dataset is accepted and appears in the list of datasets.
-
Its state clearly indicates that it is invalid.
-
Clicking on the dataset opens the detail page, where you can see a complete list of validation errors.
You can also use the Timefold Platform UI to filter datasets by their state, making it easy to find all invalid datasets. This allows teams to quickly identify and fix problematic inputs.
Validation warnings
Datasets (submitted via the UI or API) that are syntactically valid but contain validation warnings:
-
The dataset is accepted.
-
The model can still solve successfully.
-
All standard dataset results are available, including metrics, optimization gain, and score analysis.
On the dataset detail page, the list of validation warnings is shown below the score analysis table, making it easy to review non-blocking issues while still analyzing optimization results.
Next
-
See the full API spec or try the online API.