BUG: Overlapping application validation is logged as an unhandled exception
- Dominant language
- TypeScript
- Stars
- 29
- Forks
- 15
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 38
Description
**Describe the Bug**
Submitting an application with overlapping study dates or a pending program information request returns 422 and is emitted as an unhandled exception.
**Expected Behaviour**
The known application validation is presented as an expected client response and does not generate a misleading unhandled-exception error log.
**Actual Behaviour**
`submitApplication` throws `UnprocessableEntityException`, which `AppAllExceptionsFilter` records as unhandled.
**Related Issues**
#4203 and #5651 discuss overlap validation behavior. This report captures the production logging behavior.
**Log**
```text
[Nest] 18 - 09/04/2026, 6:22:12 AM LOG [AccessLoggerMiddleware] Request - PATCH /api/students/application/[redacted]/submit From [redacted] | User GUID: [redacted] | User Agent: Chrome 152 on Windows
[Nest] 18 - 09/04/2026, 6:22:13 AM ERROR [AppAllExceptionsFilter] Unhandled exception, request path: /api/students/application/[redacted]/submit
{
"stack": "UnprocessableEntityException: There is an existing application already with overlapping study dates or a pending program information request. Please contact your institution for further assistance.\n at ApplicationStudentsController.submitApplication (webpack://studentaid-backend/apps/api/src/route-controllers/application/application.students.controller.ts:292:19)",
"status": 422,
"message": "There is an existing application already with overlapping study dates or a pending program information request. Please contact your institution for further assistance.",
"name": "UnprocessableEntityException"
}
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in apps/api/src/route-controllers/application/application.students.controller.ts at submitApplication and trace how its UnprocessableEntityException reaches AppAllExceptionsFilter. Review how known application validation responses are classified, then verify that the 422 response remains unchanged while the overlap or pending-request case is no longer logged as an unhandled exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend, observability
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100