Data
Are teacher, lesson, class, weekly-hour and timetable data correct?
The same symptom can have different causes in Dersiva. An unplaced lesson may be a mathematical capacity problem, while an abrupt process exit may point to the runtime or native solver layer. Diagnosis is faster than random configuration changes.
Are teacher, lesson, class, weekly-hour and timetable data correct?
Are unavailable days, daily limits, blocks or shared lessons locking the solution space?
Are the application, .NET, native OR-Tools components and Visual C++ runtime healthy?
Are API, licensing, Teacher Portal or output snapshots using the correct source?
Installation / runtime
→Runtime / native solver
→Data / capacity / hard constraints
→Network / DNS / API
→Applied timetable / API / portal
→Timetable snapshot / output source
→File / version / restore scope
→Replace “it does not work” with the exact stage: application startup, data entry, solver start, solver execution, timetable completion, publishing, output generation or restore. The same error message can mean different things at different stages.
When the problem occurs, note the Dersiva version, approximate time, generation mode, whether Safe Diagnostic Mode was enabled and the visible error text. Time information makes log and Windows event correlation much faster.
Before removing constraints in bulk, resetting data, reinstalling or restoring another backup, create a current `.ddbackup`. Troubleshooting should not turn into a data-loss event.
Teacher planned weekly loads, class/section hours, lesson assignments and school time structure must agree. Incorrect weekly hours or missing assignments can produce failures independently of the solver implementation.
For an unplaced lesson, inspect teacher availability, daily maximum, class open periods, shared lessons and other hard conditions together. An unplaced lesson is not the same as an application crash; it normally requires feasibility and capacity analysis.
Unavailable days, exact daily maxima, mandatory blocks, shared-lesson synchronization or protected days can each be valid while their combination makes the model infeasible. Avoid turning preference-like conditions into hard constraints unnecessarily.
A timetable can be 100% complete but still have poor gaps or daily density. That is a quality-optimization problem. Failure to build a timetable, unplaced lessons and a process crash require different diagnostic paths.
If the process closes without a normal error dialog or Windows logs show a `Google.OrTools.Sat.SolveWrapper.Solve` / native call chain, inspect runtime and native solver dependencies before changing timetable data. This is not the same as a mathematical “no solution” result.
If normal multi-worker generation exits but the same data runs in 1 Worker safe mode, that is a useful diagnostic signal. It is not definitive proof of cause, but it points toward worker/native runtime behavior, processor environment and dependency comparison.
The solver uses native OR-Tools components in addition to managed .NET code. Missing, damaged or incompatible runtime components such as Microsoft Visual C++ 2015–2022 Redistributable x64 can affect native calls. Verify current installation prerequisites.
If the same Dersiva version and `.ddbackup` work on one computer but fail at the same stage on another, do not immediately change the data. Compare Windows version, Visual C++ runtime, processor/worker behavior, security software and installation integrity.
Search Dersiva diagnostic records for the error time, operation and managed exception information. If the process exits in native code before a managed exception is recorded, `log.txt` may be incomplete and Windows event logs become more important.
For abrupt exits, review the Windows Application log for the faulting module and .NET/CoreCLR stack. Seeing `SolveWrapper_Solve` identifies that the failure occurred during the OR-Tools solve call, but it does not by itself identify the root cause.
Working internet access does not prove that the API is reachable. Check DNS resolution, HTTPS access, school-network filtering/security, the relevant Dersiva domain and the API response separately. Browser access and application/API access are not identical tests.
First verify that the correct timetable is selected as applied. Then check the desktop publication snapshot, data sent to the API, server-side source revision and portal presentation in order. A trial timetable must not replace the official portal source.
If a PDF or other output shows an unexpected timetable, identify which timetable snapshot generated it. Last timetable, trial timetable and applied timetable are different concepts. A technically correct PDF from an old snapshot is still the wrong output for the user.
Check `.ddbackup` accessibility, selected restore scope and target Dersiva version. During migration, use the supported restore workflow rather than directly copying the old application folder or machine-specific security keys.
Collect Dersiva version, problem time, workflow stage, selected mode, visible error text, the relevant `log.txt` section and Windows event information where necessary. Do not include passwords, license secrets or unnecessary personal data.
Data, constraints, runtime or publishing?
Version + time + mode + error text.
Make a return point before changes.
Use 1 Worker, one sample account or one output where appropriate.
Fix only the layer supported by logs and behavior comparison.
Removing constraints, reinstalling the application, restoring backups and changing network settings simultaneously hides the root cause. Change one variable at a time and record the result.