Troubleshooting¶
Symptoms you will actually meet when installing, deploying or running the NKO ERP, with the cause traced to the code and what to check. Every entry here comes from reading the source. Where there is no configuration fix because the problem is in the application itself, the entry links to its finding in Recommendations.
| Page | Covers |
|---|---|
| Installation | Startup failures, the first sign-in, empty menus, General Settings, approvals that go nowhere. |
| Database | Connections, migrations and the EF tool, rows that "disappear", slow pages, restores. |
| Integrations | S3 uploads, e-mail, PDF export, real-time notifications, attendance IP checks, exchange rates. |
| Deployment | The site will not start, random sign-outs, jobs that did not run, breakage after a publish. |
| Logging | Where evidence exists, where it does not, and how to capture an error. |
Before you start: where the evidence is¶
The application writes almost no logs of its own (R8-7), so the usual first step — read the log — mostly does not work. In practice there are four places to look:
- The error page in the browser.
UseDeveloperExceptionPage()runs in every environment (R1-1), so an unhandled exception shows its full stack trace to whoever triggered it. Ask the user for a screenshot of the whole page — it is often the only record. - The Windows Application event log. ASP.NET Core logs unhandled exceptions at Error level, and on Windows the default host writes Warning and above there. See Logging.
- The ASP.NET Core Module stdout log, once you switch it on — the only place a startup failure is written.
- The database itself. Most "wrong" behaviour is data: a missing setting row, a filtered-out
employee, a stale
NextUserId. The pages below give the queries.
Many failures show no error at all, because 948 catch (Exception …) blocks turn exceptions
into a null, false or an "Operation Failed!" message. When a screen says only that, the real
exception is lost: check the data the action depends on, or reproduce it with a debugger attached.
Quick finder¶
| Symptom | Page |
|---|---|
| Site returns HTTP 500.19, 500.30 or 500.31 | Deployment |
Null in Startup. |
Installation |
| Nobody can sign in on a new database | Installation |
| Signed in, but the top menu is empty or every page is unauthorised | Installation |
/ crashes |
Installation |
| A request sits with no approver, or the wrong one | Installation |
dotnet ef warns the tools are older than the runtime |
Database |
Invalid column name after a release |
Database |
| An employee, project or budget line "disappears" | Database |
| Every page is slow | Database |
Upload fails with Sequence contains no matching element |
Integrations |
| No e-mail arrives | Integrations |
| PDF export fails, or has no header and footer | Integrations |
| Notification badges only update on refresh | Integrations |
| Check-in says the IP address is not allowed | Integrations |
| High-value purchase requests skip their sign-offs | Integrations |
| Users are signed out at random | Deployment |
| The 03:00 job or the birthday mail did not run — or ran twice | Deployment |
| Everything broke right after a publish | Deployment |
Directory under C:\upload |
Deployment |
Related¶
- Installation · Deployment — the procedures these pages help you recover from.
- Recommendations — the application defects behind many of these symptoms.