Commit Graph
2 Commits
Author SHA1 Message Date
Lauri OjansivuandClaude Opus 4.8 fa2cb91694 Fix #5804: REST API returns HTTP 400/404 instead of 500 for invalid requests
Posting a comment without the required `comment` parameter (or to a board
that does not exist) returned an HTTP 500 error page. The schema-validation
error thrown on insert is a circular object (SimpleSchemaValidationContext ->
SimpleSchema -> ...), and serializing it crashed the response writer with
"Converting circular structure to JSON".

- Add Meteor-free helpers (server/lib/apiResponseHelpers.js): safeJsonStringify
  (crash-proof, falls back to {error} on circular structures), httpStatusForError
  (maps to 401/403/404/500), validateCommentBody, extractErrorMessage.
- sendJsonResult now serializes via safeJsonStringify so a non-serializable
  payload can no longer crash into a 500.
- checkBoardAccess/checkBoardWriteAccess/checkBoardAdmin throw a 404 instead of
  a TypeError on board.members when the board does not exist.
- POST comment validates input (400 when comment missing); REST comment catch
  blocks return the real status code instead of 200.
- Add 18 unit tests (server/lib/tests/apiResponseHelpers.tests.js).
- Update CHANGELOG upcoming.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 07:32:42 +03:00
Harry Adel 63ce45c538 Split shared models from Meteor 3 server runtime 2026-03-24 01:50:39 +02:00